summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Rosner <brosner@gmail.com>2009-10-30 09:11:56 +0000
committerBrian Rosner <brosner@gmail.com>2009-10-30 09:11:56 +0000
commit8dd4a28721918ee0f42f6698b2c7403f75b25646 (patch)
tree0a9bbbaf3ed944319ddb962d23e732f325536fc0
parent8812060d77199c8710bd885f8d6d38bcb46112f0 (diff)
Fixed #11872 -- Instantiate the correct model in BaseInlineFormSet.__init__ when instance is None. Thanks tobias.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11688 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/forms/models.py2
-rw-r--r--tests/regressiontests/model_formsets_regress/tests.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 37fce6824c..61ff8e4dcc 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -705,7 +705,7 @@ class BaseInlineFormSet(BaseModelFormSet):
save_as_new=False, prefix=None):
from django.db.models.fields.related import RelatedObject
if instance is None:
- self.instance = self.model()
+ self.instance = self.fk.rel.to()
else:
self.instance = instance
self.save_as_new = save_as_new
diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py
index f5e9355e42..4dba9fc19f 100644
--- a/tests/regressiontests/model_formsets_regress/tests.py
+++ b/tests/regressiontests/model_formsets_regress/tests.py
@@ -140,3 +140,13 @@ class InlineFormsetTests(TestCase):
self.assertEqual(manager[1]['name'], 'Terry Gilliam')
else:
self.fail('Errors found on formset:%s' % form_set.errors)
+
+ def test_formset_with_none_instance(self):
+ "A formset with instance=None can be created. Regression for #11872"
+ Form = modelform_factory(User)
+ FormSet = inlineformset_factory(User, UserSite)
+
+ # Instantiate the Form and FormSet to prove
+ # you can create a formset with an instance of None
+ form = Form(instance=None)
+ formset = FormSet(instance=None)