Skip to content

Commit 6e5229b

Browse files
committed
Support any expression if the connection vendor isn't mongodb
1 parent 3ef3dbb commit 6e5229b

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

django_mongodb_backend/expressions/builtins.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,14 @@ def expression_wrapper(self, compiler, connection):
107107
return self.expression.as_mql(compiler, connection, as_expr=True)
108108

109109

110-
def index_expression(self, compiler, connection, as_expr=False):
110+
def index_expression(self, compiler, connection, as_expr=False): # noqa: ARG001
111111
result = []
112112
for expr in self.get_source_expressions():
113113
if expr is None:
114114
continue
115115
for sub_expr in expr.get_source_expressions():
116116
try:
117-
result.append(sub_expr.as_mql(compiler, connection, as_expr=False))
117+
result.append(sub_expr.as_mql(compiler, connection))
118118
except FullResultSet:
119119
result.append(Value(True).as_mql(compiler, connection))
120120
return result

django_mongodb_backend/schema.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,13 @@ def _remove_field_index(self, model, field, column_prefix=""):
353353
collection.drop_index(index_names[0])
354354

355355
def _check_supported_expressions(self, expressions):
356-
for expression in expressions:
357-
expression = expression.expression if isinstance(expression, OrderBy) else expression
358-
if not isinstance(expression, F):
359-
return False
356+
if self.connection.vendor == "mongodb":
357+
for expression in expressions:
358+
expression = (
359+
expression.expression if isinstance(expression, OrderBy) else expression
360+
)
361+
if not isinstance(expression, F):
362+
return False
360363
return True
361364

362365
def _unique_supported(

0 commit comments

Comments
 (0)