在类PostByFilters
中,我将limit
作为url参数,并将值分配到类page_size
中的BasicSizePagination
中。我试图在这两个类之外使用全局变量,但是没有用。无论如何,是否需要重新初始化BasicSizePagination
中的PostByFilters
,以便我可以直接为PostByFilters
中的值赋值?
class BasicSizePagination(pagination.PageNumberPagination):
page_size = 10
class PostByFilters(ListAPIView):
serializer_class = serializers.PostSerializer
pagination_class = BasicSizePagination
def get_queryset(self):
limit = self.request.query_params.get('limit', None)
...
return queryset
答案 0 :(得分:2)
从 PageNumberPagination
创建一个新的分页类,并按如下所示覆盖 page_size_query_param
属性
from rest_framework.pagination import PageNumberPagination
class CustomPageNumberPagination(PageNumberPagination):
page_size_query_param = 'size' # items per page
因此,您的网址将为 /api/foo/?size=10
,每页将返回10个项目。如果您未在URL中提供 size
参数,则DRF将使用 settings.PAGE_SIZE