Django QuerySet Pagination Function

  • Share this:

Code introduction


This function is used to paginate a queryset and return the paginated object list. It uses Django's Paginator class to implement pagination, accepting the queryset, request object, pagination parameters, etc., and returning the paginated queryset.


Technology Stack : Django, Paginator

Code Type : Django view helper functions

Code Difficulty : Intermediate


                
                    
import random
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def paginate_queryset(queryset, request, *args, **kwargs):
    """
    Paginate a queryset with the Django paginator and return the paginated object list.
    """
    paginator = Paginator(queryset, *args, **kwargs)
    page = request.GET.get('page')
    try:
        paginated_queryset = paginator.page(page)
    except PageNotAnInteger:
        paginated_queryset = paginator.page(1)
    except EmptyPage:
        paginated_queryset = paginator.page(paginator.num_pages)
    return paginated_queryset