Skip to content

Commit dc06aad

Browse files
committed
Fix error message when a lookup isn't supported.
1 parent a5417ae commit dc06aad

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

django_mongodb_backend/fields/embedded_model_array.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ class EmbeddedModelArrayField(ArrayField):
1616
"in",
1717
"exact",
1818
"iexact",
19-
"regex",
20-
"iregex",
2119
"gt",
2220
"gte",
2321
"lt",
@@ -242,7 +240,10 @@ def get_transform(self, name):
242240
self._sub_transform = transform
243241
return self
244242
output_field = self._lhs.output_field
245-
suggested_lookups = difflib.get_close_matches(name, output_field.get_lookups())
243+
allowed_lookups = self.array_field.ALLOWED_LOOKUPS.intersection(
244+
set(output_field.get_lookups())
245+
)
246+
suggested_lookups = difflib.get_close_matches(name, allowed_lookups)
246247
if suggested_lookups:
247248
suggested_lookups = " or ".join(suggested_lookups)
248249
suggestion = f", perhaps you meant {suggested_lookups}?"

tests/model_fields_/test_embedded_model_array.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,13 @@ def test_missing_lookup(self):
270270
with self.assertRaisesMessage(FieldDoesNotExist, msg):
271271
MuseumExhibit.objects.filter(sections__section_number__return=3)
272272

273+
def test_missing_operation(self):
274+
msg = "Unsupported lookup 'rage' for EmbeddedModelArrayField of 'IntegerField'"
275+
with self.assertRaisesMessage(FieldDoesNotExist, msg):
276+
self.assertCountEqual(
277+
MuseumExhibit.objects.filter(sections__section_number__rage=[10]), []
278+
)
279+
273280
def test_missing_lookup_suggestions(self):
274281
msg = (
275282
"Unsupported lookup 'ltee' for EmbeddedModelArrayField of 'IntegerField', "

0 commit comments

Comments
 (0)