浏览代码

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

Follow up to 6cc0f22a73970dd7c0d29d4d8d2ff9e1cc862b30.

Thanks Phil Gyford for the report.
sarahboyce 2 年之前
父节点
当前提交
7a5307974a
共有 2 个文件被更改,包括 15 次插入0 次删除
  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.
     ``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()``
 ``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
 Upstream support for PostgreSQL 11 ends in November 2023. Django 4.2 supports
 PostgreSQL 12 and higher.
 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
 Miscellaneous
 -------------
 -------------