From 25904db9154c5be3ecda9585d96f536841af9126 Mon Sep 17 00:00:00 2001 From: David Sanders Date: Wed, 26 Oct 2022 19:05:27 +1100 Subject: Fixed #34119 -- Prevented callable default hidden widget value from being overridden. Thanks to Benjamin Rigaud for the report. --- tests/forms_tests/tests/tests.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/tests.py b/tests/forms_tests/tests/tests.py index aba405db15..294e574168 100644 --- a/tests/forms_tests/tests/tests.py +++ b/tests/forms_tests/tests/tests.py @@ -203,6 +203,46 @@ class ModelFormCallableModelDefault(TestCase): """, ) + def test_callable_default_hidden_widget_value_not_overridden(self): + class FieldWithCallableDefaultsModel(models.Model): + int_field = models.IntegerField(default=lambda: 1) + json_field = models.JSONField(default=dict) + + class FieldWithCallableDefaultsModelForm(ModelForm): + class Meta: + model = FieldWithCallableDefaultsModel + fields = "__all__" + + form = FieldWithCallableDefaultsModelForm( + data={ + "initial-int_field": "1", + "int_field": "1000", + "initial-json_field": "{}", + "json_field": '{"key": "val"}', + } + ) + form_html = form.as_p() + self.assertHTMLEqual( + form_html, + """ +

+ + + +

+

+ + + +

+ """, + ) + class FormsModelTestCase(TestCase): def test_unicode_filename(self): -- cgit v1.3