Django Rest Framework:如何在ModelViewSet中关闭/打开分页 [英] Django rest framework: how to turn off/on pagination in ModelViewSet
本文介绍了Django Rest Framework:如何在ModelViewSet中关闭/打开分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将 Django REST框架与 djangorestframework-csv 具有默认的分页设置,但是当请求的格式为"CSV"时,则没有需要分页.可以通过以下方式禁用分页:
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 possible to disable pagination with:
pagination_class = None
可以动态更改吗?
class ObjectViewSet(BaseViewSet, viewsets.ModelViewSet):
queryset = Object.objects.none()
serializer_class = ObjectSerializer
pagination_class = None # if format is "CSV"
# pagination_class = None # if fromat isn't "CSV"
谢谢.
推荐答案
一种选择是通过设置no_page
查询参数来动态禁用视图上的分页:
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)
这篇关于Django Rest Framework:如何在ModelViewSet中关闭/打开分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文