Skip to content

Commit 4c17e86

Browse files
Arun S KumarArun S Kumar
authored andcommitted
dereference added to node resolver
1 parent ff387fe commit 4c17e86

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

graphene_mongo/types.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
from graphene.relay import Connection, Node
66
from graphene.types.objecttype import ObjectType, ObjectTypeOptions
77
from graphene.types.utils import yank_fields_from_attrs
8+
from graphene.utils.str_converters import to_snake_case
89

910
from graphene_mongo import MongoengineConnectionField
1011
from .converter import convert_mongoengine_field
1112
from .registry import Registry, get_global_registry
12-
from .utils import get_model_fields, is_valid_mongoengine_model
13+
from .utils import get_model_fields, is_valid_mongoengine_model, get_query_fields
1314

1415

1516
def construct_fields(model, registry, only_fields, exclude_fields):
@@ -210,7 +211,15 @@ def is_type_of(cls, root, info):
210211

211212
@classmethod
212213
def get_node(cls, info, id):
213-
return cls._meta.model.objects.get(pk=id)
214+
only_fields = list()
215+
for field in cls._meta.only_fields:
216+
if field in cls._meta.model._fields_ordered:
217+
only_fields.append(field)
218+
for field in get_query_fields(info):
219+
if to_snake_case(field) in cls._meta.model._fields_ordered:
220+
only_fields.append(to_snake_case(field))
221+
only_fields = list(set(only_fields))
222+
return cls._meta.model.objects.no_dereference().only(*only_fields).get(pk=id)
214223

215224
def resolve_id(self, info):
216225
return str(self.id)

0 commit comments

Comments
 (0)