django-上传文件时更新模型表格

时间:2018-09-01 02:59:46

标签: python django

我正在建立一个包含许多Work对象的网站。 Work被分组为Collection,并且每个类都有其自己的数据库模型(因此,每个Work都具有引用其Collection的外键)。通常,我通常一次添加所有几个Collection对象中的Work个。这些模型如下所示:

class Collection(models.Model):
    name = models.CharField(max_length=100, default=None)
    description = models.TextField(null=True, blank=True, default=None)


class Work(models.Model):
    collection = models.ForeignKey(Collection, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, default=None)
    description = models.TextField(null=True, blank=True, default=None)
    imagepath = models.ImageField(upload_to=get_work_filename, default=None)

为简化将它们添加到网站的过程,我想将它们以一种形式添加。因此,我正在尝试使用自定义的ModelAdmin和Model Form:

class WorkInline(admin.StackedInline):
    model = Work


class CollectionForm(forms.ModelForm):
    name = forms.CharField()
    description = forms.Textarea()
    pictures = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

    class Meta:
        model = Collection
        fields = '__all__'


class CollectionAdmin(admin.ModelAdmin):
    form = CollectionForm
    fieldsets = (
        (None, {
            'fields': ('name', 'abbrev', 'description', 'pictures',),
        }),
    )
    inlines = [WorkInline]

这个想法是我填写Collection的名称和描述,然后在该集合中以Work的形式上传一堆图像。 Work中的大多数字段都可以仅根据上传文件的文件名自动填充;除了description以外,我可能想逐个工作地手动更改。当我单击页面底部的“添加”按钮时,我将执行一个例程以正确处理表单,构造模型实例并将其添加到数据库中。

我想要的是让Work中的所有WorkInline模板在上传文件后立即自动填充 ,这样我就可以对其进行编辑。我还是Django的新手,所以我真的不知道有什么选择,在找到关于该主题的任何有用信息之前,我用光了搜索词。有什么好方法吗?

0 个答案:

没有答案