Skip to content

Commit 5db17de

Browse files
Merge branch 'bug-fix-feat-retrieving-queried-fields-only' into support-point-field-in-args
2 parents d3fcc6b + fc942bf commit 5db17de

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

graphene_mongo/converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def reference_resolver(root, *args, **kwargs):
257257
return document.objects().no_dereference().only(*list(
258258
set(list(_type._meta.required_fields) + queried_fields))).get(
259259
pk=de_referenced["_ref"].id)
260-
return document
260+
return document()
261261
return None
262262

263263
def lazy_reference_resolver(root, *args, **kwargs):

graphene_mongo/fields.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
241241
args.update(queryset_or_filters)
242242
if limit is not None:
243243
if reversed:
244-
order_by = ""
245244
if self.order_by:
246245
order_by = self.order_by + ",-pk"
247246
else:
@@ -253,7 +252,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
253252
skip if skip else 0).limit(limit)
254253
elif skip is not None:
255254
if reversed:
256-
order_by = ""
257255
if self.order_by:
258256
order_by = self.order_by + ",-pk"
259257
else:
@@ -269,10 +267,13 @@ def default_resolver(self, _root, info, required_fields=list(), **args):
269267
args = args or {}
270268
if _root is not None:
271269
field_name = to_snake_case(info.field_name)
272-
if field_name in _root._fields_ordered and not (isinstance(_root._fields[field_name].field,
273-
mongoengine.EmbeddedDocumentField) or
274-
isinstance(_root._fields[field_name].field,
275-
mongoengine.GenericEmbeddedDocumentField)):
270+
if not hasattr(_root, "_fields_ordered"):
271+
if getattr(_root, field_name, []) is not None:
272+
args["pk__in"] = [r.id for r in getattr(_root, field_name, [])]
273+
elif field_name in _root._fields_ordered and not (isinstance(_root._fields[field_name].field,
274+
mongoengine.EmbeddedDocumentField) or
275+
isinstance(_root._fields[field_name].field,
276+
mongoengine.GenericEmbeddedDocumentField)):
276277
if getattr(_root, field_name, []) is not None:
277278
args["pk__in"] = [r.id for r in getattr(_root, field_name, [])]
278279

0 commit comments

Comments
 (0)