From abfa4619fb818ff694c22e962a280673e085239e Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 12 Nov 2025 19:47:16 +0000 Subject: Fixed #36730 -- Fixed constraint validation crash for excluded FK attnames. Regression in e44e8327d3d88d86895735c0e427102063ff5b55. Co-authored-by: Mariusz Felisiak --- tests/model_forms/models.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/model_forms/models.py') diff --git a/tests/model_forms/models.py b/tests/model_forms/models.py index f6c34a3521..83daa13d71 100644 --- a/tests/model_forms/models.py +++ b/tests/model_forms/models.py @@ -543,3 +543,22 @@ class ConstraintsModel(models.Model): violation_error_message="Price must be greater than zero.", ), ] + + +class AttnameConstraintsModel(models.Model): + left = models.ForeignKey( + "self", related_name="+", null=True, on_delete=models.SET_NULL + ) + right = models.ForeignKey( + "self", related_name="+", null=True, on_delete=models.SET_NULL + ) + + class Meta: + required_db_features = {"supports_table_check_constraints"} + constraints = [ + models.CheckConstraint( + name="%(app_label)s_%(class)s_left_not_right", + # right_id here is the ForeignKey's attname, not name. + condition=~models.Q(left=models.F("right_id")), + ), + ] -- cgit v1.3