summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2025-11-12 19:47:16 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2025-11-13 09:16:46 +0100
commitabfa4619fb818ff694c22e962a280673e085239e (patch)
tree85fcaee04e89b0ad9b9334f4909c6e661aff2019 /django
parent5401b125abca53200eacb62c8a10e602359b76d4 (diff)
Fixed #36730 -- Fixed constraint validation crash for excluded FK attnames.
Regression in e44e8327d3d88d86895735c0e427102063ff5b55. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'django')
-rw-r--r--django/db/models/constraints.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/django/db/models/constraints.py b/django/db/models/constraints.py
index 73ab23bdfa..93251ff322 100644
--- a/django/db/models/constraints.py
+++ b/django/db/models/constraints.py
@@ -51,9 +51,12 @@ class BaseConstraint:
def _expression_refs_exclude(cls, model, expression, exclude):
get_field = model._meta.get_field
for field_name, *__ in model._get_expr_references(expression):
- if field_name in exclude:
+ if field_name == "pk":
+ field = model._meta.pk
+ else:
+ field = get_field(field_name)
+ if field_name in exclude or field.name in exclude:
return True
- field = get_field(field_name)
if field.generated and cls._expression_refs_exclude(
model, field.expression, exclude
):