@@ -150,7 +150,25 @@ async def default_resolver(self, _root, info, required_fields=None, resolved=Non
150150 list_length = len (iterables )
151151
152152 elif callable (getattr (self .model , "objects" , None )):
153- if (
153+ if "pk__in" in args and args ["pk__in" ]:
154+ count = len (args ["pk__in" ])
155+ skip , limit = find_skip_and_limit (
156+ first = first , last = last , after = after , before = before , count = count
157+ )
158+ if limit :
159+ args ["pk__in" ] = args ["pk__in" ][skip : skip + limit ]
160+ elif skip :
161+ args ["pk__in" ] = args ["pk__in" ][skip :]
162+ iterables = self .get_queryset (self .model , info , required_fields , ** args )
163+ iterables = await sync_to_async (list )(iterables )
164+ list_length = len (iterables )
165+ if isinstance (info , GraphQLResolveInfo ):
166+ if not info .context :
167+ info = info ._replace (context = Context ())
168+ info .context .queryset = self .get_queryset (
169+ self .model , info , required_fields , ** args
170+ )
171+ elif (
154172 _root is None
155173 or args
156174 or isinstance (getattr (_root , field_name , []), AsyncMongoengineConnectionField )
@@ -206,25 +224,6 @@ async def default_resolver(self, _root, info, required_fields=None, resolved=Non
206224 self .model , info , required_fields , ** args
207225 )
208226
209- elif "pk__in" in args and args ["pk__in" ]:
210- count = len (args ["pk__in" ])
211- skip , limit = find_skip_and_limit (
212- first = first , last = last , after = after , before = before , count = count
213- )
214- if limit :
215- args ["pk__in" ] = args ["pk__in" ][skip : skip + limit ]
216- elif skip :
217- args ["pk__in" ] = args ["pk__in" ][skip :]
218- iterables = self .get_queryset (self .model , info , required_fields , ** args )
219- iterables = await sync_to_async (list )(iterables )
220- list_length = len (iterables )
221- if isinstance (info , GraphQLResolveInfo ):
222- if not info .context :
223- info = info ._replace (context = Context ())
224- info .context .queryset = self .get_queryset (
225- self .model , info , required_fields , ** args
226- )
227-
228227 elif _root is not None :
229228 field_name = to_snake_case (info .field_name )
230229 items = getattr (_root , field_name , [])
0 commit comments