7
7
from django .db .models .lookups import Transform
8
8
9
9
from .. import forms
10
- from .json import build_json_mql_path
11
10
12
11
13
12
class EmbeddedModelField (models .Field ):
@@ -163,10 +162,6 @@ def get_transform(self, name):
163
162
Validate that `name` is either a field of an embedded model or a
164
163
lookup on an embedded model's field.
165
164
"""
166
- if isinstance (self .ref_field , EmbeddedModelField ):
167
- opts = self .ref_field .embedded_model ._meta
168
- new_field = opts .get_field (name )
169
- return KeyTransformFactory (name , new_field )
170
165
if transform := self .ref_field .get_transform (name ):
171
166
return transform
172
167
suggested_lookups = difflib .get_close_matches (name , self .ref_field .get_lookups ())
@@ -181,28 +176,15 @@ def get_transform(self, name):
181
176
f"{ suggestion } "
182
177
)
183
178
184
- def preprocess_lhs (self , compiler , connection ):
179
+ def as_mql (self , compiler , connection ):
185
180
previous = self
186
- embedded_key_transforms = []
187
- json_key_transforms = []
181
+ key_transforms = []
188
182
while isinstance (previous , KeyTransform ):
189
- if isinstance (previous .ref_field , EmbeddedModelField ):
190
- embedded_key_transforms .insert (0 , previous .key_name )
191
- else :
192
- json_key_transforms .insert (0 , previous .key_name )
183
+ key_transforms .insert (0 , previous .key_name )
193
184
previous = previous .lhs
194
185
mql = previous .as_mql (compiler , connection )
195
- # The first json_key_transform is the field name.
196
- embedded_key_transforms .append (json_key_transforms .pop (0 ))
197
- return mql , embedded_key_transforms , json_key_transforms
198
-
199
- def as_mql (self , compiler , connection ):
200
- mql , key_transforms , json_key_transforms = self .preprocess_lhs (compiler , connection )
201
186
transforms = "." .join (key_transforms )
202
- result = f"{ mql } .{ transforms } "
203
- if json_key_transforms :
204
- result = build_json_mql_path (result , json_key_transforms )
205
- return result
187
+ return f"{ mql } .{ transforms } "
206
188
207
189
@property
208
190
def output_field (self ):
0 commit comments