| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-04-22 | Fixed #35870 -- Made blank choice label in forms more accessible. | Annabelle Wiegart | |
| Added new constant django.db.models.fields.BLANK_CHOICE_LABEL for an accessible and translatable blank choice label in forms. Deprecated django.db.models.fields.BLANK_CHOICE_DASH constant. Added the immediately deprecated transitional setting USE_BLANK_CHOICE_DASH. Co-Authored-By: Marijke Luttekes <mail@marijkeluttekes.dev> | |||
| 2026-04-01 | Fixed #37004 -- Used QuerySet.totally_ordered in ↵ | Rodrigo Vieira | |
| BaseModelFormSet.get_queryset() for stable ordering. | |||
| 2025-08-25 | Fixed #36251 -- Avoided mutating form Meta.fields in BaseInlineFormSet. | SaJH | |
| Signed-off-by: SaJH <wogur981208@gmail.com> | |||
| 2025-08-21 | Clarified "inline foreign key" to avoid confusion with generated fields in ↵ | Clifford Gama | |
| django/forms/models.py. | |||
| 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-03-31 | Refs #28909 -- Simplified code using unpacking generalizations. | Aarni Koskela | |
| 2025-03-12 | Fixed #35676 -- Made BaseModelForm validate constraints that reference an ↵ | Clifford Gama | |
| InlineForeignKeyField. Co-authored-by: Simon Charette <charette.s@gmail.com> | |||
| 2025-03-10 | Fixed #36201 -- Caught ValidationError in ↵ | saJaeHyukc | |
| ModelChoiceField/ModelMultipleChoiceField.clean(). Signed-off-by: saJaeHyukc <wogur981208@gmail.com> | |||
| 2024-09-09 | Refs #373 -- Added Model._is_pk_set() abstraction to check if a Model's PK ↵ | Csirmaz Bendegúz | |
| is set. | |||
| 2024-06-17 | Fixed #35483 -- Added NUL (0x00) character validation to ModelChoiceFields. | Alexander Lötvall | |
| Applied the ProhibitNullCharactersValidator to ModelChoiceField and ModelMultipleChoiceField. Co-authored-by: Viktor Paripás <viktor.paripas@gmail.com> Co-authored-by: Vasyl Dizhak <vasyl@dizhak.com> Co-authored-by: Arthur Vasconcelos <vasconcelos.arthur@gmail.com> | |||
| 2024-06-13 | Fixed #35488 -- Fixed BaseModelFormSet.validate_unique() crash due to ↵ | Madalin Popa | |
| unhashable type. | |||
| 2024-02-26 | Fixed #35241 -- Cached model's full parent list. | Adam Johnson | |
| co-authored-by: Keryn Knight <keryn@kerynknight.com> co-authored-by: Natalia <124304+nessita@users.noreply.github.com> co-authored-by: David Smith <smithdc@gmail.com> co-authored-by: Paolo Melchiorre <paolo@melchiorre.org> | |||
| 2024-02-20 | Fixed #35236 -- Used Field.attname/column attributes instead of ↵ | Adam Johnson | |
| get_attname()/get_attname_column(). | |||
| 2024-01-26 | Applied Black's 2024 stable style. | Mariusz Felisiak | |
| https://github.com/psf/black/releases/tag/24.1.0 | |||
| 2023-11-02 | Fixed #34927 -- Fixed admin system check for inlines with foreign keys to ↵ | Antoine Cheneau | |
| proxy models. Follow up to 0e8be73812a6e62d5a6b12a585d133b56bc2bf52. | |||
| 2023-09-04 | Refs #31262 -- Renamed ChoiceIterator to BaseChoiceIterator. | Nick Pope | |
| Some third-party applications, e.g. `django-filter`, already define their own `ChoiceIterator`, so renaming this `BaseChoiceIterator` will be a better fit and avoid any potential confusion. See https://github.com/carltongibson/django-filter/pull/1607. | |||
| 2023-08-30 | Fixed #31262 -- Added support for mappings on model fields and ↵ | Nick Pope | |
| ChoiceField's choices. | |||
| 2023-07-07 | Fixed #32210 -- Fixed model inlines with to_field that has a default. | Neeraj Kumar | |
| 2023-04-27 | Avoided creating default form fields in fields_for_model() when declared on ↵ | Mariusz Felisiak | |
| form. | |||
| 2023-02-07 | Fixed #34317 -- Renamed "instance" argument of ↵ | Bakdolot | |
| BaseModelFormSet.save_existing() method. | |||
| 2022-11-04 | Fixed #27654 -- Propagated alters_data attribute to callables overridden in ↵ | LightDiscord | |
| subclasses. Thanks Shai Berger and Adam Johnson for reviews and the implementation idea. | |||
| 2022-10-31 | Used more augmented assignment statements. | Nick Pope | |
| Identified using the following command: $ git grep -I '\(\<[_a-zA-Z0-9]\+\>\) *= *\1 *[-+/*^%&|<>@]' | |||
| 2022-08-08 | Fixed #31721 -- Allowed ModelForm meta to specify form fields. | Kamil Turek | |
| 2022-07-05 | Fixed #33822 -- Fixed save() crash on model formsets when not created by ↵ | Shawn Dong | |
| modelformset_factory(). Thanks Claude Paroz for the report. Regression in e87f57fdb8dcdabc452bd15abd015bf6c9b1f7a8. | |||
| 2022-05-10 | Fixed #30581 -- Added support for Meta.constraints validation. | Gagaro | |
| Thanks Simon Charette, Keryn Knight, and Mariusz Felisiak for reviews. | |||
| 2022-03-16 | Used sets for field names for exclusion. | Gagaro | |
| They are used only for containment checks. | |||
| 2022-02-07 | Refs #33476 -- Refactored code to strictly match 88 characters line length. | Mariusz Felisiak | |
| 2022-02-07 | Refs #33476 -- Reformatted code with Black. | django-bot | |
| 2022-02-03 | Refs #33476 -- Refactored problematic code before reformatting by Black. | Mariusz Felisiak | |
| In these cases Black produces unexpected results, e.g. def make_random_password( self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyz' 'ABCDEFGHJKLMNPQRSTUVWXYZ' '23456789', ): or cursor.execute(""" SELECT ... """, [table name], ) | |||
| 2022-01-27 | Fixed #26142 -- Allowed model formsets to prevent new object creation. | vgolubev | |
| Thanks Jacob Walls, David Smith, and Mariusz Felisiak for reviews. Co-authored-by: parth <parthvin@gmail.com> | |||
| 2021-09-30 | Fixed #33155 -- Made ModelChoiceIteratorValue instances hashable. | Aljaž Košir | |
| 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-09-03 | Fixed #32975 -- Fixed admin system check for inlines with foreign keys to ↵ | taulant | |
| proxy models. | |||
| 2021-01-26 | Fixed #32347 -- Made ModelChoiceField include the value in ValidationError ↵ | Jerin Peter George | |
| for invalid_choice. | |||
| 2021-01-14 | Refs #8760 -- Removed "list" message for ModelMultipleChoiceField per ↵ | Mariusz Felisiak | |
| deprecation timeline. | |||
| 2020-10-27 | Fixed #1891, Fixed #11707 -- Prevented duplicates with limit_choices_to on ↵ | alvinshaita | |
| multi-value relations. | |||
| 2020-07-30 | Bumped minimum isort version to 5.1.0. | David Smith | |
| Fixed inner imports per isort 5. isort 5.0.0 to 5.1.0 was unstable. | |||
| 2020-06-24 | Fixed #9061 -- Allowed FormSets to disable deleting extra forms. | David Smith | |
| Thanks to Dan Ward for the initial patch. | |||
| 2020-06-05 | Fixed #20347 -- Allowed customizing the maximum number of instantiated forms ↵ | David Smith | |
| in formsets. Co-authored-by: ethurgood <ethurgood@gmail.com> | |||
| 2020-03-12 | Fixed #8760 -- Changed ModelMultipleChoiceField to use invalid_list as a ↵ | David Smith | |
| error message key. | |||
| 2020-02-05 | Fixed #26813 -- Prevented empty choice in ModelChoiceField with RadioSelect ↵ | Hasan Ramezani | |
| for fields with blank=False. | |||
| 2020-02-04 | Simplified imports from django.db and django.contrib.gis.db. | Nick Pope | |
| 2019-12-23 | Fixed #30998 -- Added ModelChoiceIteratorValue to pass the model instance to ↵ | Jon Dufresne | |
| ChoiceWidget.create_option(). | |||
| 2019-12-17 | Fixed #31086 -- Improved error message for admin model inlines with more ↵ | Shubham singh | |
| than one foreign key to the same parent. | |||
| 2019-11-28 | Refs #23919 -- Replaced super(...) with super() in metaclasses. | Jon Dufresne | |
| 2019-10-11 | Fixed #30014 -- Fixed ModelChoiceField validation when initial value is a ↵ | Etienne Chové | |
| model instance. Thanks Carlton Gibson for reviews. | |||
| 2019-06-28 | Fixed #30400 -- Improved typography of user facing strings. | Jon Dufresne | |
| Thanks Claude Paroz for assistance with translations. | |||
| 2019-06-20 | Added missing form argument in modelform_factory() docstring. | Tobias Kunze | |
| 2019-06-04 | Fixed #30534 -- Fixed overriding a field's default in ModelForm.cleaned_data(). | RobertAKARobin | |
| 2019-04-03 | Fixed #30302 -- Fixed forms.model_to_dict() result if empty list of fields ↵ | belegnar | |
| is passed. | |||
