Django Rest Framework:如何在ModelViewSet中关闭/打开分页 [英] Django rest framework: how to turn off/on pagination in ModelViewSet

查看:198
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆