2014-09-29 94 views
0

我有模型(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

你设置字段'空= TRUE'呢? – Railslide 2014-10-17 13:48:23

+0

@Railslide我只需要它的情况下,当我想上传json与许多数据。在admin.py中,我覆盖了用于验证字段数据的保存功能。 – SAKrisT 2014-10-17 14:09:07

+0

@Railslide你是对的!对于大多数文件它没有必要,但对于ForeignKey它是需要的。 – SAKrisT 2014-10-17 16:28:48

回答

0

你需要设置你的领域null=True为好,因为你需要允许在数据库NULL为了让空白领域的形式。

关于blank=Truenull=True以及它们如何与表单和字段进行交互之间的区别,这里有一个很明确的阐述:https://stackoverflow.com/a/8609425/2926113