kopia lustrzana https://github.com/ahmetkotan/restpi
32 wiersze
1.1 KiB
Python
32 wiersze
1.1 KiB
Python
|
from rest_framework.settings import api_settings
|
||
|
from rest_framework.views import APIView
|
||
|
|
||
|
class PaginationAPIView(APIView):
|
||
|
pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
|
||
|
|
||
|
@property
|
||
|
def paginator(self):
|
||
|
"""
|
||
|
The paginator instance associated with the view, or `None`.
|
||
|
"""
|
||
|
if not hasattr(self, '_paginator'):
|
||
|
if self.pagination_class is None:
|
||
|
self._paginator = None
|
||
|
else:
|
||
|
self._paginator = self.pagination_class()
|
||
|
return self._paginator
|
||
|
|
||
|
def paginate_queryset(self, queryset):
|
||
|
"""
|
||
|
Return a single page of results, or `None` if pagination is disabled.
|
||
|
"""
|
||
|
if self.paginator is None:
|
||
|
return None
|
||
|
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
||
|
|
||
|
def get_paginated_response(self, data):
|
||
|
"""
|
||
|
Return a paginated style `Response` object for the given output data.
|
||
|
"""
|
||
|
assert self.paginator is not None
|
||
|
return self.paginator.get_paginated_response(data)
|