Django -包含多个图像的ImageField

66bbxpm5  于 2022-12-14  发布在  Go
关注(0)|答案(1)|浏览(78)

我有一个有图像字段的模型。我希望用户能够为模型的一个对象上传多个图像-而不仅仅是一个图像。如何做到这一点?是否使用图像字段或其他方法。

xiozqbni

xiozqbni1#

不能在一个ImageField中存储多个图像。
这个问题的一个解决方案是创建一个额外的模型(我在我的社交网络宠物项目中称之为“Attachment”,你可以用任何适合你的名字来称呼它),并让它在一个外键中引用原始模型,这样你就可以上传任意多的图片,并为每个新图片创建一个新模型的示例。
附件型号示例:

class Attachment(DatetimeCreatedMixin, AuthorMixin):
    class AttachmentType(models.TextChoices):
        PHOTO = "Photo", _("Photo")
        VIDEO = "Video", _("Video")

    file = models.ImageField('Attachment', upload_to='attachments/')
    file_type = models.CharField('File type', choices=AttachmentType.choices, max_length=10)

    publication = models.ForeignKey(TheOriginalModelYouUsedImageFieldIn, on_delete=models.CASCADE, verbose_name='Model that uses the image field')

    class Meta:
        verbose_name = 'Attachment'
        verbose_name_plural = 'Attachments'

相关问题