I am facing validation error when I am trying to save form and formset at the same time. ValidationError
at /event-admin-2/ [u'ManagementForm data is missing or has been tampered with']
post method:
def post(self, request, **kwargs):
self.object = self.get_object()
event_times = EventTime.objects.filter(event = self.object).exclude(start_time = None)
if 'update_event_form' in request.POST:
form_class = self.get_form_class()
form = self.form_class(request.POST, prefix="foo", instance=self.get_object())
formset = self.second_form_class(request.POST, prefix="foo2", queryset=event_times)
if form.is_valid() and formset.is_valid():
return HttpResponseRedirect('/event-admin-%s' %self.kwargs['event_id'])
else:
return self.render_to_response(
self.get_context_data(form=form, formset=formset))
Template:
<form method='POST' action=''>{%csrf_token%}
{% crispy formset event_time_formset_helper %}
<button id='add-time' type="button" class="btn btn-default">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
{{ form|crispy }}
<input class="btn btn-primary" type="submit" name="update_event_form" value="Update" />
</form>
HTML output:
<div> <input id="id_form-TOTAL_FORMS" name="form-TOTAL_FORMS" type="hidden" value="4" /> <input id="id_form-INITIAL_FORMS" name="form-INITIAL_FORMS" type="hidden" value="1" /> <input id="id_form-MIN_NUM_FORMS" name="form-MIN_NUM_FORMS" type="hidden" value="1" /> <input id="id_form-MAX_NUM_FORMS" name="form-MAX_NUM_FORMS" type="hidden" value="1000" /> </div>
您已经在post方法中实例化表单集的位置设置了prefix='foo'
,但是无论您在get方法中的哪个位置都未设置它。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.