2014-09-29 92 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