I\'m using Django REST framework with djangorestframework-csv with default pagination settings, but when request is with format \"CSV\", there is no need in paginaion. Is possib
if you just want to turn on or off pagination by client dynamically,you can custom Pagination class as:
class Pagination(PageNumberPagination):
page_size_query_param = 'page_size'
max_page_size = 100
def get_page_size(self, request):
if self.page_size_query_param:
page_size = min(int(request.query_params.get(self.page_size_query_param, self.page_size)),
self.max_page_size)
if page_size > 0:
return page_size
elif page_size == 0:
return None
else:
pass
return self.page_size
use this class as your pagination_class and you can turn off pagination by request url "http://www.example.com/some_object/?page_size=0", ?page_size=0 will disable pagination. if you just want disable pagination when request format is CVS,you can try what danilke said.
One option would be to dynamically disable pagination on the view by setting a no_page
query parameter:
def paginate_queryset(self, queryset, request, view=None):
if 'no_page' in request.query_params:
return None
return super().paginate_queryset(queryset, request, view)