需要在django表单中上传多个文件

时间:2012-03-19 14:59:51

标签: django

我在下面给出了我的代码。它有一个图像区域。我正在使用django表单和自定义模板来填充和存储此信息。我希望允许用户根据自己的意愿为每本书上传0到10张图片。那么我该怎样才能实现它。我的要求如下:

  1. 最小 - 0档,最大 - 10档
  2. 允许的文件类型 - * .jpg,*。jpeg,* .gif,* .png
  3. 它可以是浏览文件字段,也可以是调用窗口以选择多个文件的按钮。
  4. 我想保存并检索这些图片并在以后编辑它们。
  5. models.py

    class Book(models.Model):
        title       = models.CharField(max_length = 200)
        author      = models.CharField(max_length = 200)
        cost        = models.IntegerField()
        description = models.TextField()
        image       = models.ImageField(upload_to = 'images/books/', null = True, blank = True)
    

    forms.py

    class BookForm(forms.ModelForm):
    
        class Meta:
            model = Book
            widgets = {
                'location'   : forms.TextInput(attrs={'placeholder': 'Location'}),
                'title'      : forms.TextInput(attrs={'placeholder': 'Title'}),
                'author'     : forms.TextInput(attrs={'placeholder': 'Author'}),
                'cost'       : forms.TextInput(attrs={'placeholder': 'Price'}),
                'description': forms.Textarea(attrs={'placeholder': 'Description'}),
            }
    

    在提出此问题之前,我尝试了Garmoncheg django_multiuploaderScompt multifile widget。但他们都没有帮助我。过去两天我正在从事这项工作,但无法让它发挥作用。所以请建议我成功完成这项任务的方法。

1 个答案:

答案 0 :(得分:1)

我要做的是将“图像”字段完全分成单独的模型,然后使用内联formset工厂为图书上传多个图像。

看一下formset documentation,我想你很快就会流行起来。希望能帮到你。