diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 3a2b6e170..6832a5f0f 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -260,46 +260,29 @@ def connection_resolver( iterable = resolver(root, info, **args) - if info.is_awaitable(iterable): - - async def resolve_connection_async(iterable): - iterable = await iterable - if iterable is None: - iterable = default_manager - - iterable = await sync_to_async(queryset_resolver)( - connection, iterable, info, args - ) - - if info.is_awaitable(iterable): - iterable = await iterable - - return await sync_to_async(cls.resolve_connection)( - connection, args, iterable, max_limit=max_limit - ) - - return resolve_connection_async(iterable) - if iterable is None: iterable = default_manager + iterable = queryset_resolver(connection, iterable, info, args) + + return cls.resolve_connection(connection, args, iterable, max_limit=max_limit) + + def wrap_resolve(self, parent_resolver): try: get_running_loop() except RuntimeError: pass else: - iterable = sync_to_async(queryset_resolver)( - connection, iterable, info, args - ) - return sync_to_async(cls.resolve_connection)( - connection, args, iterable, max_limit=max_limit + return partial( + sync_to_async(self.connection_resolver), + parent_resolver, + self.connection_type, + self.get_manager(), + self.get_queryset_resolver(), + self.max_limit, + self.enforce_first_or_last, ) - iterable = queryset_resolver(connection, iterable, info, args) - - return cls.resolve_connection(connection, args, iterable, max_limit=max_limit) - - def wrap_resolve(self, parent_resolver): return partial( self.connection_resolver, parent_resolver,