diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 7539cf2..02e4a9c 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -127,12 +127,12 @@ class DjangoConnectionField(ConnectionField): return connection._meta.node.get_queryset(queryset, info) @classmethod - def resolve_connection(cls, connection, args, iterable): + def resolve_connection(cls, connection, args, iterable, max_limit=None): iterable = maybe_queryset(iterable) if isinstance(iterable, QuerySet): - _len = iterable.count() + _len = max_limit or iterable.count() else: - _len = len(iterable) + _len = max_limit or len(iterable) connection = connection_from_list_slice( iterable, args, @@ -189,7 +189,7 @@ class DjangoConnectionField(ConnectionField): # thus the iterable gets refiltered by resolve_queryset # but iterable might be promise iterable = queryset_resolver(connection, iterable, info, args) - on_resolve = partial(cls.resolve_connection, connection, args) + on_resolve = partial(cls.resolve_connection, connection, args, max_limit=max_limit) if Promise.is_thenable(iterable): return Promise.resolve(iterable).then(on_resolve)