Skip to content

Commit b206278

Browse files
author
Jacob Foster
committed
Optimize DjangoConnectionField too
1 parent f585518 commit b206278

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

graphene_django/fields.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from graphene.relay import ConnectionField, PageInfo
99
from graphql_relay.connection.arrayconnection import connection_from_list_slice
1010

11+
from .optimization import optimize_queryset
1112
from .settings import graphene_settings
1213
from .utils import DJANGO_FILTER_INSTALLED, maybe_queryset
1314

@@ -62,14 +63,15 @@ def merge_querysets(cls, default_queryset, queryset):
6263
return queryset & default_queryset
6364

6465
@classmethod
65-
def resolve_connection(cls, connection, default_manager, args, iterable):
66+
def resolve_connection(cls, connection, default_manager, args, info, iterable):
6667
if iterable is None:
6768
iterable = default_manager
6869
iterable = maybe_queryset(iterable)
6970
if isinstance(iterable, QuerySet):
7071
if iterable is not default_manager:
7172
default_queryset = maybe_queryset(default_manager)
7273
iterable = cls.merge_querysets(default_queryset, iterable)
74+
iterable = optimize_queryset(default_manager.model, iterable, info.field_asts[0])
7375
_len = iterable.count()
7476
else:
7577
_len = len(iterable)
@@ -112,7 +114,7 @@ def connection_resolver(cls, resolver, connection, default_manager, max_limit,
112114
args['last'] = min(last, max_limit)
113115

114116
iterable = resolver(root, args, context, info)
115-
on_resolve = partial(cls.resolve_connection, connection, default_manager, args)
117+
on_resolve = partial(cls.resolve_connection, connection, default_manager, args, info)
116118

117119
if Promise.is_thenable(iterable):
118120
return Promise.resolve(iterable).then(on_resolve)

0 commit comments

Comments
 (0)