diff options
Diffstat (limited to 'django/contrib/postgres/constraints.py')
-rw-r--r-- | django/contrib/postgres/constraints.py | 15 |
1 files changed, 7 insertions, 8 deletions
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): |