2011-03-03 54 views
3

表單集創建在views.py:ManagementForm數據丟失錯誤而表單集驗證

ffact = formset_factory(Form,extra=somenum])) 
fset = ffact(prefix='pfix') 

驗證在views.py:

ffact = formset_factory(Form,extra=3)) 
fset = ffact(request.POST) 
if fset_is.valid(): 
    blah blah 

這導致異常類型:ValidationError在/應用程序/索引/ 例外值:[u'ManagementForm數據丟失或被篡改'] django-docs 確實提到過這一點。我不知道如何提供管理數據。我想是這樣this

try: 
    fset = ffact(request.POST) 
except ValidationError: 
    fset = None 
if fset and fset.is_valid(): 
    blah blah 

但我仍然會得到相同的error.Any想法?謝謝。

+0

您提供的Django文檔鏈接已過時。以下是兩種替代方案: https://docs.djangoproject.com/zh/1.10/topics/forms/formsets/#understanding-the-managementform 和 https://docs.djangoproject.com/zh/1.10/topics/forms/modelforms /#using-the-formset-in-the-template – 2016-11-29 19:26:13

回答

8

渲染formset.management_form模板

{{fset.management_form}} 

這允許管理表格數據可用並因此數據是完整的。但是如果預先在添加修改時添加前綴應該修復該問題。

fset = ffact(request.POST,prefix='pfix') 
7

管理數據是否在request.POSThttp://docs.djangoproject.com/en/dev/topics/forms/formsets/#understanding-the-managementform

以下信息必須是在request.POST

data = { 
    'form-TOTAL_FORMS': u'1', 
    'form-INITIAL_FORMS': u'0', 
    'form-MAX_NUM_FORMS': u'', 
} 

有渲染的隱藏字段的快捷方式:{{ my_formset.management_form }}

+0

對不起,我確實得到它了。是的,我確實參考了那個文檔。我不確定是如何提供額外的信息? – stackover 2011-03-03 17:10:43

+0

謝謝你的線索Yuji – stackover 2011-03-03 17:34:01

+0

沒問題。心連心 – 2011-03-03 17:57:06