Browse Source

Fixed #34099 -- Added release notes for QuerySet.update_or_create() changes.

Follow up to 6cc0f22a73970dd7c0d29d4d8d2ff9e1cc862b30.

Thanks Phil Gyford for the report.
sarahboyce 2 years ago
parent
commit
7a5307974a
2 changed files with 15 additions and 0 deletions
  1. 5 0
      docs/ref/models/querysets.txt
  2. 10 0
      docs/releases/4.2.txt

+ 5 - 0
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() <django.db.models.Model.save>`.
+
 ``bulk_create()``
 ~~~~~~~~~~~~~~~~~
 

+ 10 - 0
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() <django.db.models.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
 -------------