Skip to content

Commit fc942bf

Browse files
Bug fix in default_resolver and graphene.Union converter.py
1 parent 12f095c commit fc942bf

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
@@ -228,7 +228,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
228228
args.update(queryset_or_filters)
229229
if limit is not None:
230230
if reversed:
231-
order_by = ""
232231
if self.order_by:
233232
order_by = self.order_by + ",-pk"
234233
else:
@@ -240,7 +239,6 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
240239
skip if skip else 0).limit(limit)
241240
elif skip is not None:
242241
if reversed:
243-
order_by = ""
244242
if self.order_by:
245243
order_by = self.order_by + ",-pk"
246244
else:
@@ -256,10 +254,13 @@ def default_resolver(self, _root, info, required_fields=list(), **args):
256254
args = args or {}
257255
if _root is not None:
258256
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)):
263264
if getattr(_root, field_name, []) is not None:
264265
args["pk__in"] = [r.id for r in getattr(_root, field_name, [])]
265266

0 commit comments

Comments
 (0)