我不断地发现错误:
[u'ManagementForm data is missing or has been tampered with']
我也不明白为什么。我的观点是:
def CreateWorkout(request):
WorkoutInlineFormSet = inlineformset_factory(workout,exercise)
if request.method == "POST" :
formset = WorkoutInlineFormSet(request.POST)
if formset.is_valid():
formset.save();
else:
formset = WorkoutInlineFormSet()
return render_to_response('submit.html',{'formset': formset},context_instance=RequestContext(request))
这是我的模板:
<body>
<form method="POST" action ="">
{{ formset.management_form }}
<table>
{% for form in formset.forms %}
{{ form }}
{% endfor %}
</table>
</form>
</body>
我读到你必须包括formset.management_form
,我也有。我以为那是一个简单的解决办法,但我还没能解决问题。
我遇到了这个问题。
原因是在
POST
数据中没有类似form-TOTAL_FORMS, form-INITIAL_FORMS and form-MAX_NUM_FORMS)
的内容。您应该使用
{{ formset.as_p }}
,这将呈现来自表单集的管理表单数据。如果要进行自定义表单集呈现,则不应忘记表单集的管理表单,以便让POST数据与管理表单数据一起使用。使用内联表单集时,需要提供与对象相关的实例。
有关详细信息,请参阅using an inline formset in a view上文档中的示例。
如果
workout
和exercise
是您的模型,您应该遵循python约定,将它们重命名为Workout
和Exercise
。小写workout
应该是表单集中所有练习链接到的实例。更改此:
对此:
相关问题 更多 >
编程相关推荐