Правильная пагинация в Django

Имеется сущность Задачи. В CBV TasksCls выполнена пагинация.

'''views.py'''
class TasksCls(View):
    def get(self, request):
        tasks = Task.objects.select_related('id_person').all()
        paginator = Paginator(tasks, 10)
        page_number = request.GET.get('page', 1)
        page = paginator.get_page(page_number)
        count = tasks.count()
        type = 'Все задачи'
        return render(request, 'rootApp/tasks/tasks.html', context={'tasks': page, 'count': count, 'type': type,})

Пагинация устроена таким образом, что сначала мы выбираем все задачи из таблицы и затем разделяем их на страницы. Это круто, когда задач мало, но если их гипотетически будет 1000000? Будет большая нагрузка на БД. Подскажите пожалуйста как грамотно сделать пагинацию?


Ответы (1 шт):

Автор решения: n.one.k

Через django-debug-toolbar проверил, как идут запросы, и убедился в том, что выбираются только то количество записей, которое указано в пагинаторе. @Jack_oS был прав, благодарю!

→ Ссылка