【问题标题】:maximum page size queryset in generic views django rest通用视图中的最大页面大小查询集 django rest
【发布时间】:2018-07-21 23:26:20
【问题描述】:

我们如何在 Django REST 框架中实现通用 API 视图的 page_size=max? ?page_size=max 与 drf-extensions 一起使用,但仅适用于 Viewsets 而不是泛型 ListAPIView。有人可以确认我们该怎么做吗?

提前感谢您的帮助。

【问题讨论】:

  • 您可以使用限制偏移分页,您可以使用限制参数控制页面大小。

标签: django pagination django-rest-framework django-queryset


【解决方案1】:

在您的ListAPIView 视图集中使用paginate_bypaginate_by_parammax_paginate_by 以获得允许的最大页面大小。

class PaginatedListView(ListAPIView):
    queryset = ExampleModel.objects.all()
    serializer_class = ExampleModelSerializer    
    paginate_by = 10 # Default to 10
    paginate_by_param ='page_size' # Allow client to override, using `?page_size=xxx`.
    max_paginate_by = 100 # Maximum limit allowed when using `?page_size=xxx`.

参考:pagination-in-the-generic-views

【讨论】:

    【解决方案2】:

    在查询集中使用分页来获取对象

    参考:https://docs.djangoproject.com/en/2.0/topics/pagination/

    【讨论】:

      【解决方案3】:

      感谢大家的回复。但我确切地发现的是以下问题的重复: Django rest framework: how to turn off/on pagination in ModelViewSet

      我们只需要覆盖 Django REST 框架 PageNumberPagination 类的 get_page_size() 方法。

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2016-06-15
        • 2016-10-27
        • 2016-09-30
        • 1970-01-01
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多