Skip to content

Commit d25622e

Browse files
Logic for hydrated_references in get_queryset() optimised and avoided db calls
1 parent 3bd9c35 commit d25622e

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

graphene_mongo/fields.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,9 @@ def get_queryset(self, model, info, required_fields=list(), skip=None, limit=Non
200200
reference_fields = get_model_reference_fields(self.model)
201201
hydrated_references = {}
202202
for arg_name, arg in args.copy().items():
203-
if arg_name in reference_fields and isinstance(arg, str):
204-
reference_obj = get_node_from_global_id(
205-
reference_fields[arg_name], info, args.pop(arg_name)
206-
)
203+
if arg_name in reference_fields and not isinstance(arg,
204+
mongoengine.base.metaclasses.TopLevelDocumentMetaclass):
205+
reference_obj = reference_fields[arg_name].document_type(pk=from_global_id(arg)[1])
207206
hydrated_references[arg_name] = reference_obj
208207
args.update(hydrated_references)
209208

0 commit comments

Comments
 (0)