diff --git a/django/contrib/postgres/constraints.py b/django/contrib/postgres/constraints.py index f71a587430..c67292f9f0 100644 --- a/django/contrib/postgres/constraints.py +++ b/django/contrib/postgres/constraints.py @@ -202,16 +202,15 @@ class ExclusionConstraint(BaseConstraint): for idx, (expression, operator) in enumerate(self.expressions): if isinstance(expression, str): expression = F(expression) - if isinstance(expression, F): - if exclude and expression.name in exclude: - return - rhs_expression = expression.replace_references(replacement_map) - else: - rhs_expression = expression.replace_references(replacement_map) - if exclude: - for expr in rhs_expression.flatten(): + if exclude: + if isinstance(expression, F): + if expression.name in exclude: + return + else: + for expr in expression.flatten(): if isinstance(expr, F) and expr.name in exclude: return + rhs_expression = expression.replace_references(replacement_map) # Remove OpClass because it only has sense during the constraint # creation. if isinstance(expression, OpClass):