summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevilsAutumn <bhuvnesh875@gmail.com>2022-09-09 15:21:41 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-09-09 13:51:47 +0200
commitf3cd252cfc46c0c7d66e765818dd3dadf60d4d0e (patch)
tree6f5fd953b39c962c1d051b833b92fbae03eab875
parent6df9398cce063874ae4d59db126d4adacb0fa8d3 (diff)
Fixed #33995 -- Fixed FormSet.empty_form crash when empty_permitted is passed to form_kwargs.
-rw-r--r--django/forms/formsets.py15
-rw-r--r--tests/forms_tests/tests/test_formsets.py4
2 files changed, 12 insertions, 7 deletions
diff --git a/django/forms/formsets.py b/django/forms/formsets.py
index 57676428ff..f14e1aae83 100644
--- a/django/forms/formsets.py
+++ b/django/forms/formsets.py
@@ -257,14 +257,15 @@ class BaseFormSet(RenderableFormMixin):
@property
def empty_form(self):
- form = self.form(
- auto_id=self.auto_id,
- prefix=self.add_prefix("__prefix__"),
- empty_permitted=True,
- use_required_attribute=False,
+ form_kwargs = {
**self.get_form_kwargs(None),
- renderer=self.renderer,
- )
+ "auto_id": self.auto_id,
+ "prefix": self.add_prefix("__prefix__"),
+ "empty_permitted": True,
+ "use_required_attribute": False,
+ "renderer": self.renderer,
+ }
+ form = self.form(**form_kwargs)
self.add_fields(form, None)
return form
diff --git a/tests/forms_tests/tests/test_formsets.py b/tests/forms_tests/tests/test_formsets.py
index c36a79d4e0..f0e4b154b7 100644
--- a/tests/forms_tests/tests/test_formsets.py
+++ b/tests/forms_tests/tests/test_formsets.py
@@ -179,6 +179,10 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertTrue(hasattr(formset.empty_form, "custom_kwarg"))
self.assertEqual(formset.empty_form.custom_kwarg, 1)
+ def test_empty_permitted_ignored_empty_form(self):
+ formset = ArticleFormSet(form_kwargs={"empty_permitted": False})
+ self.assertIs(formset.empty_form.empty_permitted, True)
+
def test_formset_validation(self):
# FormSet instances can also have an error attribute if validation failed for
# any of the forms.