在views.py中创建表单集:

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


这会导致异常类型:/ app / index /中的ValidationError
异常值:[u'ManagementForm数据丢失或已被篡改'] django-docs
确实提到了这一点。我不确定如何提供管理数据。我尝试了类似this的方法

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


但是我仍然遇到同样的错误,有什么想法吗?谢谢。

最佳答案

管理数据是否在request.POST中?
http://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 }}

10-06 00:01