Re: [Django] #33995: Rendering empty_form crashes when empty_permitted is passed to form_kwargs (was: Key Error 'empty_permitted' when rendering 'formset.empty_form')

23 views
Skip to first unread message

Django

unread,
Sep 8, 2022, 3:27:07 AM9/8/22
to django-...@googlegroups.com
#33995: Rendering empty_form crashes when empty_permitted is passed to form_kwargs
-------------------------------------+-------------------------------------
Reporter: claypooj21 | Owner: nobody
Type: Bug | Status: new
Component: Forms | Version: 4.1
Severity: Normal | Resolution:
Keywords: formset, | Triage Stage: Accepted
empty_form, empty_permitted, form |
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* easy: 0 => 1
* stage: Unreviewed => Accepted


Comment:

Thanks for the report. It should be enough to change `form_kwargs` for
`empty_form`, e.g.
{{{#!diff
diff --git a/django/forms/formsets.py b/django/forms/formsets.py
index 57676428ff..b73d1d742e 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__"),
+ "use_required_attribute": False,
+ "empty_permitted": True,
+ "renderer": self.renderer,
+ }
+ form = self.form(**form_kwargs)
self.add_fields(form, None)
return form


}}}
Would you like to prepare a patch? (a regression test is required)

--
Ticket URL: <https://code.djangoproject.com/ticket/33995#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Reply all
Reply to author
Forward
0 new messages