diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 16e4ffbc45..671acd3026 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -2271,6 +2271,11 @@ exists in the database, an :exc:`~django.db.IntegrityError` is raised. ``aupdate_or_create()`` method was added. +.. versionchanged:: 4.2 + + In older versions, ``update_or_create()`` didn't specify ``update_fields`` + when calling :meth:`Model.save() `. + ``bulk_create()`` ~~~~~~~~~~~~~~~~~ diff --git a/docs/releases/4.2.txt b/docs/releases/4.2.txt index 3951a617e0..cbe42cca99 100644 --- a/docs/releases/4.2.txt +++ b/docs/releases/4.2.txt @@ -355,6 +355,16 @@ Dropped support for PostgreSQL 11 Upstream support for PostgreSQL 11 ends in November 2023. Django 4.2 supports PostgreSQL 12 and higher. +Setting ``update_fields`` in ``Model.save()`` may now be required +----------------------------------------------------------------- + +In order to avoid updating unnecessary columns, +:meth:`.QuerySet.update_or_create` now passes ``update_fields`` to the +:meth:`Model.save() ` calls. As a consequence, any +fields modified in the custom ``save()`` methods should be added to the +``update_fields`` keyword argument before calling ``super()``. See +:ref:`overriding-model-methods` for more details. + Miscellaneous -------------