Skip to content

Commit fcdeee9

Browse files
Merge branch 'master' into support-monogengine-field-enum
2 parents bd864a5 + 8c9661d commit fcdeee9

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

graphene_mongo/converter.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def convert_point_to_field(field, registry=None):
8888
required=field.required)
8989

9090

91+
9192
@convert_mongoengine_field.register(mongoengine.PolygonField)
9293
def convert_polygon_to_field(field, registry=None):
9394
return graphene.Field(advanced_types.PolygonFieldType, description=get_field_description(field, registry),
@@ -106,6 +107,7 @@ def convert_file_to_field(field, registry=None):
106107
required=field.required)
107108

108109

110+
109111
@convert_mongoengine_field.register(mongoengine.ListField)
110112
@convert_mongoengine_field.register(mongoengine.EmbeddedDocumentListField)
111113
def convert_field_to_list(field, registry=None):

graphene_mongo/fields.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,9 +397,17 @@ def chained_resolver(self, resolver, is_partial, root, info, **args):
397397
args_copy['pk__in'] = arg['$in']
398398
elif "$ne" in arg:
399399
args_copy['pk__ne'] = arg['$ne']
400+
operation = list(arg.keys())[0]
401+
args_copy['pk' + operation.replace('$', '__')] = arg[operation]
400402
if '.' in arg_name:
401403
operation = list(arg.keys())[0]
402404
args_copy[arg_name.replace('.', '__') + operation.replace('$', '__')] = arg[operation]
405+
else:
406+
operations = ["$lte", "$gte", "$ne", "$in"]
407+
if isinstance(arg, dict) and any(op in arg for op in operations):
408+
operation = list(arg.keys())[0]
409+
args_copy[arg_name + operation.replace('$', '__')] = arg[operation]
410+
del args_copy[arg_name]
403411
return self.default_resolver(root, info, required_fields, **args_copy)
404412
else:
405413
return resolved

0 commit comments

Comments
 (0)