最近我正在使用 drf 分页类,PageNumberPagination。我可能遇到也可能没有遇到一个奇怪的错误。官方文档提到,要覆盖 PageNumberPagination 的页面大小,我们必须创建一个自定义分页器来覆盖页面大小配置,如下所示
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'page_size'
max_page_size = 1000
class BillingRecordsView(generics.ListAPIView):
queryset = Billing.objects.all()
serializer_class = BillingRecordsSerializer
pagination_class = LargeResultsSetPagination
但是当我尝试做同样的事情时,自定义分页器使用默认设置为 100 这是我使用的片段
class StandardResultsSetPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
class TrendingClassesView(ListAPIView):
pagination_class = StandardResultsSetPagination
serializer_class = BaseClassTileSerializer
queryset = BaseClass.objects.all()
有一刻代码工作正常,但是在页面大小玩了一段时间后,分页器刚刚停止工作,我必须做类似下面的事情才能使页面大小正常工作
class StandardResultsSetPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
def get_page_size(self, request):
return 10
这是我的休息框架设置
REST_FRAMEWORK = {
'UPLOADED_FILES_USE_URL':
True,
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.MultiPartParser',
'rest_framework.parsers.FileUploadParser',
'rest_framework.parsers.FormParser',
],
"TIME_FORMAT":
"%I:%M %p",
"TIME_INPUT_FORMATS": ["%I:%M %p", "%H:%M"],
}
我想我可能做错了什么,但我无法找到错误。