From 5ae8659cb5beb9e4bea36a1c1b2e443bff4f3873 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 12 Nov 2025 19:47:16 +0000 Subject: [6.0.x] Fixed #36730 -- Fixed constraint validation crash for excluded FK attnames. Regression in e44e8327d3d88d86895735c0e427102063ff5b55. Co-authored-by: Mariusz Felisiak Backport of abfa4619fb818ff694c22e962a280673e085239e from main --- django/db/models/constraints.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'django') 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 ): -- cgit v1.3