summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/forms/formsets.py3
-rw-r--r--tests/regressiontests/forms/tests/formsets.py53
2 files changed, 52 insertions, 4 deletions
diff --git a/django/forms/formsets.py b/django/forms/formsets.py
index 595ec3977a..911ee930e5 100644
--- a/django/forms/formsets.py
+++ b/django/forms/formsets.py
@@ -133,9 +133,6 @@ class BaseFormSet(StrAndUnicode):
'prefix': self.add_prefix('__prefix__'),
'empty_permitted': True,
}
- if self.data or self.files:
- defaults['data'] = self.data
- defaults['files'] = self.files
defaults.update(kwargs)
form = self.form(**defaults)
self.add_fields(form, None)
diff --git a/tests/regressiontests/forms/tests/formsets.py b/tests/regressiontests/forms/tests/formsets.py
index ad622f360f..ae420cc183 100644
--- a/tests/regressiontests/forms/tests/formsets.py
+++ b/tests/regressiontests/forms/tests/formsets.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from unittest import TestCase
-from django.forms import Form, CharField, IntegerField, ValidationError
+from django.forms import Form, CharField, IntegerField, ValidationError, DateField
from django.forms.formsets import formset_factory, BaseFormSet
@@ -41,6 +41,13 @@ FavoriteDrinksFormSet = formset_factory(FavoriteDrinkForm,
formset=BaseFavoriteDrinksFormSet, extra=3)
+class ArticleForm(Form):
+ title = CharField()
+ pub_date = DateField()
+
+ArticleFormSet = formset_factory(ArticleForm)
+
+
class FormsFormsetTestCase(TestCase):
def test_basic_formset(self):
# A FormSet constructor takes the same arguments as Form. Let's create a FormSet
@@ -767,6 +774,50 @@ class FormsFormsetTestCase(TestCase):
self.assertFalse(formset.is_valid())
self.assertEqual(formset.non_form_errors(), [u'You may only specify a drink once.'])
+ def test_empty_forms_are_unbound(self):
+ data = {
+ 'form-TOTAL_FORMS': u'1',
+ 'form-INITIAL_FORMS': u'0',
+ 'form-0-title': u'Test',
+ 'form-0-pub_date': u'1904-06-16',
+ }
+ unbound_formset = ArticleFormSet()
+ bound_formset = ArticleFormSet(data)
+
+ empty_forms = []
+
+ empty_forms.append(unbound_formset.empty_form)
+ empty_forms.append(bound_formset.empty_form)
+
+ # Empty forms should be unbound
+ self.assertFalse(empty_forms[0].is_bound)
+ self.assertFalse(empty_forms[1].is_bound)
+
+ # The empty forms should be equal.
+ self.assertEqual(empty_forms[0].as_p(), empty_forms[1].as_p())
+
+ def test_empty_forms_are_unbound(self):
+ data = {
+ 'form-TOTAL_FORMS': u'1',
+ 'form-INITIAL_FORMS': u'0',
+ 'form-0-title': u'Test',
+ 'form-0-pub_date': u'1904-06-16',
+ }
+ unbound_formset = ArticleFormSet()
+ bound_formset = ArticleFormSet(data)
+
+ empty_forms = []
+
+ empty_forms.append(unbound_formset.empty_form)
+ empty_forms.append(bound_formset.empty_form)
+
+ # Empty forms should be unbound
+ self.assertFalse(empty_forms[0].is_bound)
+ self.assertFalse(empty_forms[1].is_bound)
+
+ # The empty forms should be equal.
+ self.assertEqual(empty_forms[0].as_p(), empty_forms[1].as_p())
+
class TestEmptyFormSet(TestCase):
"Test that an empty formset still calls clean()"
def test_empty_formset_is_valid(self):