使用Django上传多个图像

时间:2015-04-09 03:32:05

标签: django upload models

我正在使用Django应用程序,并且在上传图像所需的模型/表单/模板方面遇到了一些问题。我有一个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',)

但是我不知道如何正确地查看视图。我很失落,任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

对于此任务,您应该使用inline formsets。首先阅读this docs以了解对表单集的基本了解。

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