ManagementForm data missing error while formset validation

旧巷老猫 提交于 2019-12-07 16:31:07

问题


formset creation in views.py:

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

validation in views.py:

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

this is resulting in Exception Type: ValidationError at /app/index/ Exception Value: [u'ManagementForm data is missing or has been tampered with'] django-docs did mention about this. I'm not sure how to provide management data. I tried something like this ,

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

But still i get the same error.Any ideas? Thanks.


回答1:


Is the management data in request.POST? http://docs.djangoproject.com/en/dev/topics/forms/formsets/#understanding-the-managementform

The following info has to be in request.POST:

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

There is a shortcut for rendering the hidden fields: {{ my_formset.management_form }}




回答2:


rendering the formset.management_form in the template

{{fset.management_form}}

this allows the management form data available and hence data is complete.But if prefix is added while genarating formsets

adding prefix should fix that issue.

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


来源:https://stackoverflow.com/questions/5183669/managementform-data-missing-error-while-formset-validation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!