Skip to content

Commit 209beff

Browse files
author
Zhang Yuzheng
committed
Support for objects.order_by
Use it like this: class XXX(MongoengineObjectType): class Meta: model:SomeModel interfaces:(Node,) order_by: 'some order_by clause used by SomeeModel.object().order_by' That's all, try it out. Signed-off-by: Zhang Yuzheng <[email protected]>
1 parent 28ec7e5 commit 209beff

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

graphene_mongo/fields.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ def node_type(self):
5050
def model(self):
5151
return self.node_type._meta.model
5252

53+
@property
54+
def order_by(self):
55+
return self.node_type._meta.order_by
56+
5357
@property
5458
def registry(self):
5559
return getattr(self.node_type._meta, "registry", get_global_registry())
@@ -182,7 +186,7 @@ def get_queryset(self, model, info, **args):
182186
return queryset_or_filters
183187
else:
184188
args.update(queryset_or_filters)
185-
return model.objects(**args)
189+
return model.objects(**args).order_by(self.order_by)
186190

187191
def default_resolver(self, _root, info, **args):
188192
args = args or {}

graphene_mongo/types.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class MongoengineObjectTypeOptions(ObjectTypeOptions):
7171
registry = None # type: Registry
7272
connection = None
7373
filter_fields = ()
74+
order_by = None
7475

7576

7677
class MongoengineObjectType(ObjectType):
@@ -89,6 +90,7 @@ def __init_subclass_with_meta__(
8990
connection_field_class=None,
9091
interfaces=(),
9192
_meta=None,
93+
order_by=None,
9294
**options
9395
):
9496

@@ -155,6 +157,7 @@ def __init_subclass_with_meta__(
155157
# Save them for later
156158
_meta.only_fields = only_fields
157159
_meta.exclude_fields = exclude_fields
160+
_meta.order_by = order_by
158161

159162
super(MongoengineObjectType, cls).__init_subclass_with_meta__(
160163
_meta=_meta, interfaces=interfaces, **options

0 commit comments

Comments
 (0)