Ситуация проста до безобразия. На страницу прилетает содержимое таблицы через пагинацию, но пагинация режет queryset уже после выполнения запроса к базе, а запрос выглядит так:
fooset = barmodel.objects.all().order_by('-foobar')
Поскольку в таблице порядка 10000000 строк, запрос идет некультурно долго. Как реализовать пагинацию на моменте запроса, без использования all(), что писать в фильтр?
Сейчас пагинация делается так:
current_page = Paginator(fooset,15)
page = request.GET.get('page')
try:
context['foo'] = current_page.page(page)
except PageNotAnInteger:
context['foo'] = current_page.page(1)
except EmptyPage:
context['foo'] = current_page.page(current_page.num_pages)