我得到了这个错误:ValidationError at /screen-many/ [u'ManagementForm data is missing or has been tampered with'],我认为这是由于我视图中的以下代码所致……
# e_pk_list is a list of id's that I got from POST
e_students = Student.objects.filter(pk__in=e_pk_list)
my_iterator = iter(e_students) # Each list item will correspond to a form.
SurveyFormset = formset_factory(SurveyForm, extra=len(e_students))
# Is this the tampering that I can't do??
SurveyFormset.form = staticmethod(curry(SurveyForm, item_iterator=my_iterator))
if request.method == 'POST':
survey_formset = SurveyFormset(request.POST)
if survey_formset.is_valid():
for form in survey_formset:
saved = form.save(commit=False)
saved.surveyset = ss
saved.save()
return HttpResponseRedirect('/')
else:
survey_formset = SurveyFormset()谢谢
编辑:我想我应该提到我的模板中已经有了一个管理表单……
<form action="" method="POST">{% csrf_token %}
{{ survey_formset.management_form }}
{% for form in survey_formset %}
<div class="item">
{% crispy form %}
</div>
{% endfor %}
<input type="submit" value="Submit" class='button' />
</form>发布于 2014-03-11 15:12:17
看起来你没有把management_form放到你的表单中。
将此代码放入显示SurveyFormset的html表单中
{{ SurveyFormset.management_form }}发布于 2014-03-11 19:54:49
一个表单集有很多种形式。Django使用management form data跟踪表单集中的表单数量。你也应该在模板中添加management_form,它应该与其他POST数据一起发布。
所以,你应该有:
<form method="POST" action=".">
{{survey_formset.management_form}}
{% comment %}Other form fields{% endcomment %}
</form>https://stackoverflow.com/questions/22318537
复制相似问题