ManagementForm data is missing or has been tampered with

I had the same problem trying to use two formset on same page, I'm adding it's solution coz I didn't find it anywhere else.

Make sure you add the prefix param as

formset = ProgressFormSet(request.POST or None, prefix="fs1")

to GET and POST request both.


write {{ formset.management_form }} above your {% for form in formset %}

like this

{{ formset.management_form }}
{% for form in formset %}

You have to render the management form in your template. The docs explain why and how; some selected quotes:

This form is used by the formset to manage the collection of forms contained in the formset. If you don’t provide this management data, an exception will be raised[.]

The management form is available as an attribute of the formset itself. When rendering a formset in a template, you can include all the management data by rendering {{ my_formset.management_form }} (substituting the name of your formset as appropriate).