【发布时间】:2021-10-13 08:27:32
【问题描述】:
我正在尝试同时使用 ModelViewSet 和 PageNumberPagination,但似乎无法让 page_size 正常工作。我已将尺寸设置为 200,但它总是列出 200 多个项目。
这是我的代码 sn-p:
class ExamplePagination(pagination.PageNumberPagination):
page_size = 200
max_page_size = 200
class VideosViewSet(viewsets.ModelViewSet):
parser_classes = (FormParser, JSONParser)
serializer_class = VideoSerializer
pagination_class = ExamplePagination
queryset = Video.objects.all()
@swagger_auto_schema(responses={200: VideoSerializer})
def list(self, request):
"""
Request to list all videos
"""
queryset = Video.objects.all().order_by("-published_at")
if queryset.exists():
page = self.paginate_queryset(queryset)
if page is not None:
serialized = VideoSerializer(queryset, many=True)
return self.get_paginated_response(serialized.data)
return Response(status=http_status.HTTP_404_NOT_FOUND)
我尝试了从自定义 mixins 到在 settings.py 中设置页面大小的所有方法 这也是我的 settings.py
REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
'PAGE_SIZE': 200,
}
【问题讨论】:
标签: django django-rest-framework pagination