Yes, you can implement the pagination [Django-doc] yourself, like:
from app.models import SomeModel
from django.core.paginator import Paginator
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 = Paginator(qs, paginate_by)
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}
)
We here thus use a Paginator [Django-doc] object to paginate the queryset.
This is more or less what a MultipleObjectMixin does to paginate the result. But the above actually already to some extent shows that for such views, you better use a class-based view, such that you can remove the boilerplate code.