使用 Django 上传多张图片

Uploading multiple images with Django

我正在开发 Django 应用程序,但在上传图片所需的 models/forms/templates 方面遇到了一些问题。我有一个 post,我希望与 post 和图像建立一对多关系。即 post 可以有任意数量的图像。我的第一个问题是——模型会是什么样子?我猜是这样的:

class Image(models.Model):
    img = models.ImageField(upload_to="photos/",null=True, blank=True)
    posting = models.ForeignKey(Posting, related_name="images")

class Posting(models.Model):
    ...

这是正确的吗?我的另一个问题是我应该如何上传多张图片?而且我不知道表格应该是什么样子。如果我想设置最大图片数量,我可以这样:

class ImageForm(forms.ModelForm):
    img1 = forms.ImageField()
    img2 = forms.ImageField()

    class Meta:
        model = Image
        fields = ('img1','img2',)

但是我不知道如何正确地查看视图。我超级迷路,任何帮助将不胜感激!

对于此任务,您应该首先使用 inline formsets. Read this docs 来基本了解表单集。

您问题中的模型几乎有效。从 img 字段中删除 null=True, blank=True 参数 - 在没有图像本身的 Image 实例中没有任何意义。