The method fetches all pk's (which can be a lot), then limits queryset on pk__in = pks. Either provide a method which allows fetching raw pks (best solution) or store them in a cache if settings.TAGGING_CACHE is set. Packed list of int's consumes very little memory in the cache.