Opened 3 years ago
Closed 3 years ago
#34426 closed New feature (duplicate)
Pass the BoundField instance to the Widget.render
| Reported by: | Christophe Henry | Owned by: | nobody |
|---|---|---|---|
| Component: | Forms | Version: | 4.2 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Django 4's form rendering API is nice, but lacking a important feature to me: the Widget used to render a particular Field doesn't have any access to the corresponding BoundField. This makes rendering the field, label, potential error messages altogether as well as more more complex structures — like fields with subfields, for instance — impossible to render atomically within the widget. If you want to do that, you're forced to go up to the Form's template itself.
My opinion is that `Widget.render` should be passed the corresponding BoundField instance.
This would, I think, have 2 benefits:
- allow easier rendering of complex widgets like ChoiceWidget using an iteration on the BoundField (which is what's documented and would allow unification with ChoiceWidget.options and ChoiceWidget.optgroups)
- allow rendering together
Formfields that are related sinceBoundFieldhas access to the parentForm(for instance a form with three options: email, phone, and other, respectively related to an email input, a phone input and a text input that are displayed below each).
P.S.: This is a feature request but I'm still opening a bug here since I can't join the django-developers mailing-list without a Google account.
Duplicate of #33166 (see also #34077).