@@ -228,7 +228,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
228
228
args .update (queryset_or_filters )
229
229
if limit is not None :
230
230
if reversed :
231
- order_by = ""
232
231
if self .order_by :
233
232
order_by = self .order_by + ",-pk"
234
233
else :
@@ -240,7 +239,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
240
239
skip if skip else 0 ).limit (limit )
241
240
elif skip is not None :
242
241
if reversed :
243
- order_by = ""
244
242
if self .order_by :
245
243
order_by = self .order_by + ",-pk"
246
244
else :
@@ -256,10 +254,13 @@ def default_resolver(self, _root, info, required_fields=list(), **args):
256
254
args = args or {}
257
255
if _root is not None :
258
256
field_name = to_snake_case (info .field_name )
259
- if field_name in _root ._fields_ordered and not (isinstance (_root ._fields [field_name ].field ,
260
- mongoengine .EmbeddedDocumentField ) or
261
- isinstance (_root ._fields [field_name ].field ,
262
- mongoengine .GenericEmbeddedDocumentField )):
257
+ if not hasattr (_root , "_fields_ordered" ):
258
+ if getattr (_root , field_name , []) is not None :
259
+ args ["pk__in" ] = [r .id for r in getattr (_root , field_name , [])]
260
+ elif field_name in _root ._fields_ordered and not (isinstance (_root ._fields [field_name ].field ,
261
+ mongoengine .EmbeddedDocumentField ) or
262
+ isinstance (_root ._fields [field_name ].field ,
263
+ mongoengine .GenericEmbeddedDocumentField )):
263
264
if getattr (_root , field_name , []) is not None :
264
265
args ["pk__in" ] = [r .id for r in getattr (_root , field_name , [])]
265
266
0 commit comments