﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22276	BaseFormSet.is_valid() produces ValidationError when there is no management form	anonymous	Patryk Zawadzki	"I was torn between reporting this as a bug or a feature request, but then I thought if I make it a feature request it will most likely break a lot of Django apps and hence I guess that means it's more of a bug...

Anyway so the line in question is django/forms/formsets.py:292 (in Django version 1.6.1):
{{{
for i in range(0, self.total_form_count()):
}}}

...where the self.total_form_count() executes this line django/forms/formsets.py:106 (in Django version 1.6.1):
{{{
return min(self.management_form.cleaned_data[TOTAL_FORM_COUNT], self.absolute_max)
}}}

..which then raises this exception django/forms/formsets.py:87 (in Django version 1.6.1):
{{{
raise ValidationError(
                    _('ManagementForm data is missing or has been tampered with'),
                    code='missing_management_form',
                )
}}}

That stack trace occurs if/when a user submits a formset after stripping out the management form hidden fields.

I have been using Django for a few years now and have never come across an exception being raised by a form/formset is_valid() call before. So my point is that I believe this exception should never be allowed to leave the BaseFormSet.is_valid() call, because it is an oddball behaviour compared to the rest of the is_valid() implementations.

I.e. I believe there should be a check in BaseFormSet.is_valid() which checks for the presence of a valid management form (first) and returns False if it is not present, as opposed to raising an exception.

Yes I could wrap the is_valid() call in a try/catch, but I believe this is an unnecessary hack caused by a bad design deviation of the implementation of the BaseFormSet.is_valid() method.

I didn't bother creating a patch and test cases, because I have a feeling this will get rejected or something like that, but I just thought I should bring this up, as I can't find mention of it anywhere and it seems important to me."	Bug	closed	Forms	dev	Normal	fixed		patrys@… jon.dufresne@…	Ready for checkin	1	0	0	0	0	0
