在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
最佳答案
从 PageNumberPagination
创建一个新的分页类,并覆盖 page_size_query_param
属性,如下所示
from rest_framework.pagination import PageNumberPagination
class CustomPageNumberPagination(PageNumberPagination):
page_size_query_param = 'size' # items per page
因此,您的URL为
/api/foo/?size=10
,每页将返回10个项目。如果您未在网址中提供 size
参数,则DRF将使用 settings.PAGE_SIZE
关于python - 如何在DRF PageNumberPagination中设置动态page_size,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53771709/