Skip to content

Commit a4a00bd

Browse files
committed
refactor.
1 parent 53504c0 commit a4a00bd

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

django_mongodb/fields/embedded_model.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,24 +151,25 @@ def get_transform(self, name):
151151
new_field = opts.get_field(name)
152152
result = KeyTransformFactory(name, new_field)
153153
else:
154-
if self.ref_field is not None and self.ref_field.get_transform(name) is None:
154+
if self.ref_field.get_transform(name) is None:
155155
raise FieldDoesNotExist(
156156
f"{self.ref_field.model._meta.object_name} has no field named '{name}'"
157157
)
158-
result = KeyTransformFactory(name, None)
158+
result = KeyTransformFactory(name, self.ref_field)
159159
return result
160160

161161
def preprocess_lhs(self, compiler, connection):
162162
previous = self
163163
embedded_key_transforms = []
164164
json_key_transforms = []
165165
while isinstance(previous, KeyTransform):
166-
if previous.ref_field is not None:
166+
if isinstance(previous.ref_field, EmbeddedModelField):
167167
embedded_key_transforms.insert(0, previous.key_name)
168168
else:
169169
json_key_transforms.insert(0, previous.key_name)
170170
previous = previous.lhs
171171
mql = previous.as_mql(compiler, connection)
172+
embedded_key_transforms.append(json_key_transforms.pop(0))
172173
return mql, embedded_key_transforms, json_key_transforms
173174

174175

tests/model_fields_/test_embedded_model.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,6 @@ def test_embedded_with_json_field(self):
179179
def _truncate_ms(time):
180180
return time - timedelta(microseconds=time.microsecond)
181181

182-
################
183182
def test_ordering_by_embedded_field(self):
184183
query = (
185184
EmbeddedModelFieldModel.objects.filter(simple__someint__gt=3)

0 commit comments

Comments
 (0)