summaryrefslogtreecommitdiff
path: root/tests/model_formsets/test_uuid.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-02-20 14:28:34 -0500
committerTim Graham <timograham@gmail.com>2015-02-23 09:01:00 -0500
commit41d5ed480cd55a71b739e779ca11f24caaa2b302 (patch)
tree67d5d3df875fddefd3c73e68909426398b81a58c /tests/model_formsets/test_uuid.py
parent04c262aea9b398c79e753ae75aa12b1520e99854 (diff)
[1.8.x] Fixed #24377 -- Fixed model inline formsets with primary key's that have defaults.
Backport of 1306cd1e8acfb13602ee8dc40993b2505cd7523b from master
Diffstat (limited to 'tests/model_formsets/test_uuid.py')
-rw-r--r--tests/model_formsets/test_uuid.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/model_formsets/test_uuid.py b/tests/model_formsets/test_uuid.py
new file mode 100644
index 0000000000..8025f758c9
--- /dev/null
+++ b/tests/model_formsets/test_uuid.py
@@ -0,0 +1,32 @@
+from django.forms.models import inlineformset_factory
+from django.test import TestCase
+
+from .models import UUIDPKChild, UUIDPKParent
+
+
+class InlineFormsetTests(TestCase):
+ def test_inlineformset_factory_nulls_default_pks(self):
+ """
+ #24377 - If we're adding a new object, a parent's auto-generated pk
+ from the model field default should be ignored as it's regenerated on
+ the save request.
+ """
+ FormSet = inlineformset_factory(UUIDPKParent, UUIDPKChild, fields='__all__')
+ formset = FormSet()
+ self.assertIsNone(formset.forms[0].fields['parent'].initial)
+
+ def test_inlineformset_factory_ignores_default_pks_on_submit(self):
+ """
+ #24377 - Inlines with a model field default should ignore that default
+ value to avoid triggering validation on empty forms.
+ """
+ FormSet = inlineformset_factory(UUIDPKParent, UUIDPKChild, fields='__all__')
+ formset = FormSet({
+ 'uuidpkchild_set-TOTAL_FORMS': 3,
+ 'uuidpkchild_set-INITIAL_FORMS': 0,
+ 'uuidpkchild_set-MAX_NUM_FORMS': '',
+ 'uuidpkchild_set-0-name': 'Foo',
+ 'uuidpkchild_set-1-name': '',
+ 'uuidpkchild_set-2-name': '',
+ })
+ self.assertTrue(formset.is_valid())