Back to writing

Article

Pagination in Django REST Framework

Example code:

 

from rest_framework.pagination import PageNumberPagination from rest_framework.response import Response __all__ = ['DefaultPagination'] class DefaultPagination(PageNumberPagination):    page_size = 24    page_size_query_param = 'items_per_page'    def get_paginated_response(self, data):        return Response({            'links': {                'next': self.get_next_link(),                'previous': self.get_previous_link()            },            'count': self.page.paginator.count,            'total_pages': self.page.paginator.num_pages,            'items_per_page':self.page_size,            'results': data        })    def paginate_queryset(self,queryset, request, view=None):        if request.GET.get('pagination') == 'inactive':            self.page_size = queryset.count()        return super(DefaultPagination, self).paginate_queryset(queryset, request, view)