Как я могу повторно отфильтровать queryset без проблем N+1 в Django?
У меня простая N+1 проблема с кверисетом в Django.
Простой views.py
пример кода проблемы, с которой я столкнулся.
a_queryset = AA.objects.filter(user=request.user).all()
# some codes in here with a_queryset . . .
b_queryset = a_queryset.filter(id__in=[3,4,5]) # re-filtered
# some codes in here with b_queryset . . .
c_queryset = a_queryset.get(id=10) # re-filtered
# some codes in here with c_queryset . . .
У меня проблема N+1, которая заключается в трех SELECT
запросах, и я уже знаю, что эти коды вызывают ее.
Было бы очень хорошо вызывать queryset сразу, но я не могу, потому что есть несколько задач с использованием этих queryset в середине.
Есть ли способ решить эту проблему? Что мне делать?