| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-11-13 | Fixed #36724 -- Removed invalid "for" attribute on <legend> tags. | Kasyap Pentamaraju | |
| 2025-07-23 | Refs #36500 -- Corrected rewrapped long lines fixed via a script. | Mike Edmunds | |
| Manually reformatted some comments and docstrings where autofix_w505.py changed the meaning of the formatting. | |||
| 2025-07-23 | Refs #36500 -- Rewrapped long docstrings and block comments via a script. | django-bot | |
| Rewrapped long docstrings and block comments to 79 characters + newline using script from https://github.com/medmunds/autofix-w505. | |||
| 2025-01-02 | Fixed #32819 -- Added aria-describedby to fields with errors. | David Smith | |
| 2024-12-17 | Refs #32819 -- Added aria-describedby property to BoundField. | David Smith | |
| 2024-04-30 | Refs #32819 -- Avoided adding 'aria-describedby' to hidden inputs. | David Smith | |
| Hidden elements are not visible for both accessibility tools and browsers presentation layer. This change therefore only reduces the size of the generated HTML. | |||
| 2023-11-16 | Refs #32819 -- Used auto_id instead of id_for_label as unique identifier for ↵ | David Smith | |
| the field. `id_for_label` is blank for widgets with multiple inputs such as radios and multiple checkboxes. Therefore , `help_text` for fields using these widgets cannot currently be associated using `aria-describedby`. `id_for_label` is being used as a guard to avoid incorrectly adding `aria-describedby` to those widgets. This change uses `auto_id` as the unique identified for the fields `help_text`. A guard is added to avoid incorrectly adding `aria-describedby` to inputs by checking the widget's `use_fieldset` attribute. Fields rendered in a `<fieldset>` should have `aria-describedby` added to the `<fieldset>` and not every `<input>`. | |||
| 2023-08-01 | Fixed #32820 -- Added aria-invalid="true" to fields with errors. | Gregor Jerše | |
| Co-authored-by: Demetris Stavrou <demestav@gmail.com> Co-authored-by: David Smith <smithdc@gmail.com> | |||
| 2023-07-12 | Fixed #34705 -- Reallowed BoundField.as_widget()'s attrs argument to set ↵ | Sage Abdullah | |
| aria-describedby. Regression in 966ecdd482167f3f6b08b00f484936c837751cb9. | |||
| 2023-07-06 | Fixed #32819 -- Established relationship between form fields and their help ↵ | Gregor Jerše | |
| text. Thanks Nimra for the initial patch. Thanks Natalia Bidart, Thibaud Colas, David Smith, and Mariusz Felisiak for reviews. | |||
| 2023-03-24 | Fixed #34077 -- Added form field rendering. | David Smith | |
| 2022-11-18 | Fixed #34119 -- Prevented callable default hidden widget value from being ↵ | David Sanders | |
| overridden. Thanks to Benjamin Rigaud for the report. | |||
| 2022-03-30 | Refs #32339 -- Added use_fieldset to Widget. | David | |
| 2022-02-07 | Refs #33476 -- Reformatted code with Black. | django-bot | |
| 2021-12-09 | Refs #32338 -- Added Boundfield.legend_tag(). | David Smith | |
| 2021-09-29 | Fixed #33134 -- Fixed recursion depth error when rendering Form with ↵ | David Smith | |
| BoundFields. Regression in 456466d932830b096d39806e291fe23ec5ed38d5. | |||
| 2021-09-20 | Fixed #31026 -- Switched form rendering to template engine. | David Smith | |
| Thanks Carlton Gibson, Keryn Knight, Mariusz Felisiak, and Nick Pope for reviews. Co-authored-by: Johannes Hoppe <info@johanneshoppe.com> | |||
| 2021-08-04 | Fixed #29205 -- Corrected rendering of required attributes for ↵ | Jacob Walls | |
| MultiValueField subfields. | |||
| 2021-08-04 | Fixed #32855 -- Corrected BoundWidget.id_for_label() with custom auto_id. | Jacob Rief | |
| 2021-07-16 | Fixed #32924 -- Changed BaseForm.get_initial_for_field() to remove ↵ | Chris Jerdonek | |
| microseconds when needed. | |||
| 2021-07-15 | Refs #32920 -- Added BoundField._has_changed() for use in ↵ | Chris Jerdonek | |
| BaseForm.changed_data(). | |||
| 2021-07-13 | Fixed #32917 -- Added BaseForm._widget_data_value()/_field_data_value(). | Chris Jerdonek | |
| 2020-04-10 | Fixed #13009 -- Added BoundField.widget_type property. | David Smith | |
| 2019-07-23 | Improved error message when index in __getitem__() is invalid. | Jon Dufresne | |
| 2018-03-15 | Fixed #29200 -- Fixed label rendering when using RadioSelect and ↵ | Tim Graham | |
| CheckboxSelectMultiple with MultiWidget. | |||
| 2018-01-03 | Fixed #28982 -- Simplified code with and/or. | Дилян Палаузов | |
| 2017-12-11 | Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking. | Nick Pope | |
| 2017-11-14 | Fixed #28795 -- Removed 'not in' checks and used dict.setdefault(). | Дилян Палаузов | |
| 2017-09-22 | Refs #15667 -- Removed support for Widget.render() methods without the ↵ | Tim Graham | |
| renderer argument. Per deprecation timeline. | |||
| 2017-06-02 | Fixed #28265 -- Prevented renderer warning on Widget.render() with **kwargs. | Jon Dufresne | |
| 2017-06-01 | Refs #23968 -- Removed unnecessary lists, generators, and tuple calls. | Jon Dufresne | |
| 2017-04-27 | Refs #27795 -- Replaced many force_text() with str() | Claude Paroz | |
| Thanks Tim Graham for the review. | |||
| 2017-04-17 | Fixed #28058 -- Restored empty BoundFields evaluating to True. | Tim Graham | |
| Regression in b52c73008a9d67e9ddbb841872dc15cdd3d6ee01 | |||
| 2017-03-04 | Refs #27795 -- Removed unneeded force_text calls | Claude Paroz | |
| Thanks Tim Graham for the review. | |||
| 2017-02-20 | Refs #27656 -- Updated django.forms/http docstring verbs according to PEP 257. | Anton Samarchyan | |
| 2017-02-07 | Converted usage of ugettext* functions to their gettext* aliases | Claude Paroz | |
| Thanks Tim Graham for the review. | |||
| 2017-01-19 | Refs #23919 -- Stopped inheriting from object to define new style classes. | Simon Charette | |
| 2017-01-18 | Refs #23919 -- Removed six.<various>_types usage | Claude Paroz | |
| Thanks Tim Graham and Simon Charette for the reviews. | |||
| 2017-01-18 | Refs #23919 -- Removed python_2_unicode_compatible decorator usage | Claude Paroz | |
| 2017-01-18 | Refs #23919 -- Removed encoding preambles and future imports | Claude Paroz | |
| 2016-12-27 | Fixed #15667 -- Added template-based widget rendering. | Preston Timmons | |
| Thanks Carl Meyer and Tim Graham for contributing to the patch. | |||
| 2016-09-03 | Replaced smart_* by force_* calls whenever possible | Claude Paroz | |
| The smart_* version should only be used when a lazy string should keep its lazy status. | |||
| 2016-08-18 | Fixed #27068 -- Unified form field initial data retrieval. | Jon Dufresne | |
| 2016-08-12 | Made BoundField.initial use cached_property. | Jon Dufresne | |
| Follow up to fab46ce6f5a0a58c4e5e39c9e5e412702beb4a64. | |||
| 2016-08-12 | Fixed #27037 -- Prevented required attribute on ClearableFileInput when ↵ | Jon Dufresne | |
| initial data exists. | |||
| 2016-08-08 | Fixed #27002 -- Prevented double query when rendering ModelChoiceField. | Alex Hill | |
| 2016-08-01 | Fixed #26927 -- Made subwidget iteration pass disabled and required attributes. | Jon Dufresne | |
| 2016-04-21 | Fixed #22383 -- Added support for HTML5 required attribute on required form ↵ | Jon Dufresne | |
| fields. | |||
| 2016-02-24 | Fixed #26267 -- Fixed BoundField to reallow slices of subwidgets. | Jon Dufresne | |
| 2015-09-16 | Refs #25294 -- Moved BoundField to django.forms.boundfield. | Moritz Sichert | |
