From ff2a2884a15ddd23d7414497341905c56023abac Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Fri, 7 Sep 2007 02:32:03 +0000 Subject: [PATCH] Fixed #4867. FormSet.is_valid() now returns False when the FormSet is not bound. Thanks John Shaffer. git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6052 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/newforms/formsets.py | 4 +++- tests/regressiontests/forms/formsets.py | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/django/newforms/formsets.py b/django/newforms/formsets.py index ef1083ba28..3f4a387fca 100644 --- a/django/newforms/formsets.py +++ b/django/newforms/formsets.py @@ -153,6 +153,8 @@ class BaseFormSet(object): return '%s-%s' % (self.prefix, index) def is_valid(self): + if not self.is_bound: + return False self.full_clean() return self._is_valid @@ -175,4 +177,4 @@ def all_valid(formsets): for formset in formsets: if not formset.is_valid(): return False - return True \ No newline at end of file + return True diff --git a/tests/regressiontests/forms/formsets.py b/tests/regressiontests/forms/formsets.py index 1c4f3d91b8..95dc8e4a36 100644 --- a/tests/regressiontests/forms/formsets.py +++ b/tests/regressiontests/forms/formsets.py @@ -48,6 +48,10 @@ True >>> formset.cleaned_data [{'votes': 100, 'choice': u'Calexico'}] +If a FormSet was not passed any data, its is_valid method should return False. +>>> formset = ChoiceFormSet() +>>> formset.is_valid() +False FormSet instances can also have an error attribute if validation failed for any of the forms.