我尝试了很多选择,但分页仍然不起作用。我使用的通用视图和代码如下:
class ListFood(generics.ListAPIView):
queryset = Food.objects.all()
serializer_class = FoodSerializer
def list(self,request):
queryset = self.get_queryset()
serializer = FoodSerializer(queryset, many=True)
return Response(serializer.data)
在settings.py
中,我写了这样一段话:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 20
}
我已尝试修改分页样式的特定方面,例如:
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'page_size'
max_page_size = 1000
class ListFood(generics.ListAPIView):
queryset = Food.objects.all()
serializer_class = FoodSerializer
pagination_class = LargeResultsSetPagination
def list(self,request):
queryset = self.get_queryset()
serializer = FoodSerializer(queryset, many=True)
return Response(serializer.data)
但还是没用
我的urls.py
是:
app_name = "lab"
urlpatterns = [
re_path('^food/$', ListFood.as_view(), name="listfood"),
]
没有错误消息,但是当我请求URL http://127.0.0.1:8000/api/food/?page=1
或http://127.0.0.1:8000/api/food/?page=2
它仍然没有分页。Django给了我2000条JSON格式的数据
原始
list
实现分页响应:类用自定义实现重写
list
,这就是为什么它不返回分页响应的原因。只是不要重写list
相关问题 更多 >
编程相关推荐