【问题标题】:Cloudinary multiple image upload in django?在 django 中上传 Cloudinary 多张图片?
【发布时间】:2018-08-01 13:00:50
【问题描述】:

我在带有 Cloudinary 包的 Django 应用中定义了如下图片上传,

class Photo(models.Model):
    photo = CloudinaryField('image')

我想让这个字段上传多个图像。我该怎么做呢?

【问题讨论】:

  • 它对你有用吗?

标签: python django django-models cloudinary


【解决方案1】:

一张包含多张图片的照片成为相册或照片库。我会改造如下:

class PhotoAlbum(models.Model):
    name = models.CharField()  # or whatever a photo album has

class Photo(models.Model):
    file = CloudinaryField('image')
    album = models.ForeignKey(PhotoAlbum, on_delete=models.CASCADE, related_name='photos')

使用示例:

>>> album = PhotoAlbum.objects.create(name='myalbum')
>>> photo = Photo.objects.create(album=album, image=...)

现在,Photo 知道它的 PhotoAlbum

>>> photo = Photo.objects.first()
>>> photo.album
<PhotoAlbum: myalbum>

PhotoAlbum 跟踪所有Photos:

>>> album = PhotoAlbum.objects.first()
>>> album
<PhotoAlbum: myalbum>
>>> album.photos.all()
<QuerySet [<Photo: Photo-1>]>
>>> album == Photo.objects.first().album
>>> True
>>> Photo.objects.first() == album.photos.first()
>>> True

【讨论】:

    【解决方案2】:

    我会这样做:

    class Photo(models.Model):
        photos = models.ManyToManyField('ChildPhoto',blank=True)
    
    class ChildPhoto(models.Model):
        photo = CloudinaryField('image')
    

    您可以上传多张照片,照片模型将与 ChildPhoto 模型有一个多对数

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 2020-09-20
      • 2017-02-08
      • 2017-09-09
      • 1970-01-01
      • 2022-08-24
      • 2013-10-07
      • 2022-01-25
      相关资源
      最近更新 更多