summaryrefslogtreecommitdiff
path: root/docs/releases
diff options
context:
space:
mode:
authorJacob Walls <jacobtylerwalls@gmail.com>2021-10-05 21:38:15 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-12-15 08:14:19 +0100
commit76ccce64cc3d66cfec075651c3d2239fda747dc2 (patch)
tree6d0b0e141e8cc5affdb568aef63e3aaa7e2e9779 /docs/releases
parente1d673c373a7d032060872b690a92fc95496612e (diff)
Fixed #16063 -- Adjusted admin changelist searches spanning multi-valued relationships.
This reduces the likelihood of admin searches issuing queries with excessive joins.
Diffstat (limited to 'docs/releases')
-rw-r--r--docs/releases/4.1.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/releases/4.1.txt b/docs/releases/4.1.txt
index 3fdd7f53c6..5f184d2349 100644
--- a/docs/releases/4.1.txt
+++ b/docs/releases/4.1.txt
@@ -290,6 +290,26 @@ Dropped support for MariaDB 10.2
Upstream support for MariaDB 10.2 ends in May 2022. Django 4.1 supports MariaDB
10.3 and higher.
+Admin changelist searches spanning multi-valued relationships changes
+---------------------------------------------------------------------
+
+Admin changelist searches using multiple search terms are now applied in a
+single call to ``filter()``, rather than in sequential ``filter()`` calls.
+
+For multi-valued relationships, this means that rows from the related model
+must match all terms rather than any term. For example, if ``search_fields``
+is set to ``['child__name', 'child__age']``, and a user searches for
+``'Jamal 17'``, parent rows will be returned only if there is a relationship to
+some 17-year-old child named Jamal, rather than also returning parents who
+merely have a younger or older child named Jamal in addition to some other
+17-year-old.
+
+See the :ref:`spanning-multi-valued-relationships` topic for more discussion of
+this difference. In Django 4.0 and earlier,
+:meth:`~django.contrib.admin.ModelAdmin.get_search_results` followed the
+second example query, but this undocumented behavior led to queries with
+excessive joins.
+
Miscellaneous
-------------