From f82c67aa217c8dd4320ef697b04a6da1681aa799 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 19 Feb 2024 00:20:13 -0500 Subject: Fixed #35234 -- Added system checks for invalid model field names in ExclusionConstraint.expressions. --- django/contrib/postgres/constraints.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'django') diff --git a/django/contrib/postgres/constraints.py b/django/contrib/postgres/constraints.py index c61072b5a5..ff702c53b0 100644 --- a/django/contrib/postgres/constraints.py +++ b/django/contrib/postgres/constraints.py @@ -77,6 +77,14 @@ class ExclusionConstraint(BaseConstraint): expressions.append(expression) return ExpressionList(*expressions).resolve_expression(query) + def _check(self, model, connection): + references = set() + for expr, _ in self.expressions: + if isinstance(expr, str): + expr = F(expr) + references.update(model._get_expr_references(expr)) + return self._check_references(model, references) + def _get_condition_sql(self, compiler, schema_editor, query): if self.condition is None: return None -- cgit v1.3