2017-10-28 30 views
0

假設我有一個模型FooBar的包含兩個字段酒吧。然後,如果我使用的ModelForm編輯只是領域現有的記錄,我可以用實例保留酒吧數據,即使用Django的編輯時保留所有的數據FORMSET

foobar = FooBar.objects.get(...) 
foobar_form = FooBarForm(request.post, instance=foobar) 

什麼是本作的表單集等價?到目前爲止,我已經嘗試過的實例,這Django的告訴我要表單集不存在,和初始,我用它來填充在GET請求中的表單集,

foobar = FooBar.objects.filter(...) 
foobar_formset = FooBarFormSet(request.post, initial = foobar.values()) 

扣除初始參數使得has_changed()總是返回誠然,包含初始參數會使has_changed()反映表單POST數據的實際狀態。這表明,我認爲在酒吧字段數據某處回升,但是當我遍歷foobar_formset做

for foobar_form in foobar_formset: 
    foobar_form.save() 

我得到調試一個錯誤,說在列「酒吧」空值違反非空約束。詳細信息:失敗的行包含('foo_value',null)。

回答

相關問題