Skip to content

Commit 1553e71

Browse files
Arun S KumarArun S Kumar
authored andcommitted
Bugs fixed
1 parent b91d2a2 commit 1553e71

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

graphene_mongo/converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def convert_field_to_list(field, registry=None):
128128
return graphene.List(
129129
base_type,
130130
description=get_field_description(field, registry),
131-
required=field.required,
131+
required=field.required
132132
)
133133

134134

graphene_mongo/fields.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import graphene
77
import mongoengine
8+
from graphene import Context
89
from graphene.utils.str_converters import to_snake_case
910
from promise import Promise
1011
from graphql_relay import from_global_id
@@ -245,7 +246,16 @@ def chained_resolver(self, resolver, is_partial, root, info, **args):
245246
for field in get_query_fields(info):
246247
if to_snake_case(field) in self.model._fields_ordered:
247248
only_fields.append(to_snake_case(field))
248-
if not bool(args) or not is_partial:
249+
if root is None and (not bool(args) or not is_partial):
250+
if isinstance(self.model, mongoengine.Document) or isinstance(self.model,
251+
mongoengine.base.metaclasses.TopLevelDocumentMetaclass):
252+
args_copy = args.copy()
253+
for arg_name, arg in args.copy().items():
254+
if arg_name not in self.model._fields_ordered:
255+
args_copy.pop(arg_name)
256+
if not info.context:
257+
info.context = Context()
258+
info.context.queryset = self.get_queryset(self.model, info, only_fields, **args_copy)
249259
# XXX: Filter nested args
250260
resolved = resolver(root, info, **args)
251261
if resolved is not None:

0 commit comments

Comments
 (0)