Да, вы можете реализовать нумерацию страниц [Django-doc] самостоятельно, например:
from app.models import SomeModel
from django.core.paginator import <b>Paginator</b>
from django.http import Http404
from django.shortcuts import render
def some_view(request):
paginate_by = 8
qs = SomeModel.objects.all()
page = request.GET.get('page') or 1
try:
page = int(page)
except ValueError:
raise Http404('Invalid page number')
paginator = <b>Paginator(qs, paginate_by)</b>
try:
page = paginator.page(page)
except InvalidPage as e:
raise Http404('Invalid page number')
return render(
request,
'some_template.html',
{'page_obj': page, 'object_list': page.object_list}
)
Таким образом, мы используем объект Paginator
[Django-doc] для разбиения на страницы набора запросов.
Это более или менее то, что MultipleObjectMixin
делает, чтобы разбить результат на страницы. Но вышеприведенное на самом деле уже в некоторой степени показывает, что для таких представлений лучше использовать представление на основе классов, чтобы можно было удалить шаблонный код.