Browse Source

[5.0.x] Refs #34964 -- Doc'd that Q expression order is preserved.

Backport of 7714ccfeae969aca52ad46c1d69a13fac4086c08 from main
David Sanders 1 year ago
parent
commit
a8de04f8db
1 changed files with 12 additions and 0 deletions
  1. 12 0
      docs/ref/models/constraints.txt

+ 12 - 0
docs/ref/models/constraints.txt

@@ -119,6 +119,18 @@ specifies the check you want the constraint to enforce.
 For example, ``CheckConstraint(check=Q(age__gte=18), name='age_gte_18')``
 ensures the age field is never less than 18.
 
+.. admonition:: Expression order
+
+    ``Q`` argument order is not necessarily preserved, however the order of
+    ``Q`` expressions themselves are preserved. This may be important for
+    databases that preserve check constraint expression order for performance
+    reasons. For example, use the following format if order matters::
+
+        CheckConstraint(
+            check=Q(age__gte=18) & Q(expensive_check=condition),
+            name="age_gte_18_and_others",
+        )
+
 .. admonition:: Oracle
 
     Checks with nullable fields on Oracle must include a condition allowing for