From e308cfc0e155f51f14c8eb4e678c15c5f632ae30 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sun, 15 Jan 2012 01:36:14 +0000 Subject: Added support for specifying initial values to model formsets and inline formsets. This make them consistent with the similar capability of regular formsets. Thanks to simon29 form the report and to Claude Paroz for the patch. Fixes #14574. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17373 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/model_formsets_regress/tests.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/regressiontests/model_formsets_regress/tests.py') diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py index 35a794aa78..613d77616c 100644 --- a/tests/regressiontests/model_formsets_regress/tests.py +++ b/tests/regressiontests/model_formsets_regress/tests.py @@ -204,6 +204,17 @@ class InlineFormsetTests(TestCase): ["", ""] ) + def test_initial_data(self): + user = User.objects.create(username="bibi", serial=1) + UserSite.objects.create(user=user, data=7) + FormSet = inlineformset_factory(User, UserSite, extra=2) + + formset = FormSet(instance=user, initial=[{'data': 41}, {'data': 42}]) + self.assertEqual(formset.forms[0].initial['data'], 7) + self.assertEqual(formset.extra_forms[0].initial['data'], 41) + self.assertTrue(u'value="42"' in formset.extra_forms[1].as_p()) + + class FormsetTests(TestCase): def test_error_class(self): ''' @@ -230,6 +241,14 @@ class FormsetTests(TestCase): self.assertTrue(isinstance(form.errors, ErrorDict)) self.assertTrue(isinstance(form.non_field_errors(), ErrorList)) + def test_initial_data(self): + User.objects.create(username="bibi", serial=1) + Formset = modelformset_factory(User, extra=2) + formset = Formset(initial=[{'username': u'apollo11'}, {'username': u'apollo12'}]) + self.assertEqual(formset.forms[0].initial['username'], "bibi") + self.assertEqual(formset.extra_forms[0].initial['username'], "apollo11") + self.assertTrue(u'value="apollo12"' in formset.extra_forms[1].as_p()) + class CustomWidget(forms.CharField): pass -- cgit v1.3