放弃在管理面板上保存模型

时间:2014-09-29 15:59:12

标签: python django forms model admin

我有模型(model.py):

class Group(models.Model):
    system_id = models.ForeignKey(System)
    group_id = models.CharField(max_length=40)
    description = models.TextField()
    title = models.CharField(max_length=250)
    latintitle = models.CharField(max_length=250)
    audio = models.CharField(max_length=250)

我已经为包含多个组的上传文件添加了自定义字段,然后解析它(admin.py):

class GroupModelForm(forms.ModelForm):
    file = forms.FileField(required=False)
    def save(self, commit=True):
        file = self.cleaned_data['file']
        if file:
            lines = file.readlines()

        # ...do something with extra_field here...
        return super(GroupModelForm, self).save(commit=commit)
    class Meta:
        model = Group
        fields =  ('file',)

class GroupAdmin(admin.ModelAdmin):
    list_display = ('id', 'title', 'group_id')
    form = GroupModelForm
    fieldsets = (
                 ('New Group', {
                  'fields': ('system_id', 'group_id', 'title', 'latintitle', 'description', 'audio')
                  }),
                 ('Upload JSON file with groups info', {
                  'fields': ('file',)
                  }),
                 )

当我上传文件时,它说其他字段需要填写。
我的问题:如何忽略这些错误并将文件处理后重定向到另一个页面?

enter image description here

更新:我创建了所有字段blank=True,但只有一个

1 个答案:

答案 0 :(得分:0)

您还需要将字段设置为null=True,因为您需要在数据库中允许NULL以允许表单中的空白字段。

关于blank=Truenull=True之间的区别以及它们与表单和字段的互动方式,这里有一个非常明确的解释:https://stackoverflow.com/a/8609425/2926113