如何将查询中的页面大小设置为分页元数据Django rest fram

2024-06-26 14:41:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为我的一个应用程序设置了自定义分页,我面临的问题是页面大小仅显示应用程序中设置的默认值,但不会根据查询参数中发送的值进行更改。我哪里出错了?在

class CustomPagination(PageNumberPagination):
    page_size = 10
    page_size_query_param = 'page_size'

    def get_paginated_response(self, data):
        return Response({"status": True,
                         "data": {
                             'results': data,
                             "meta": {
                                 'page_count':self.page.paginator.num_pages,
                                 'total_results': self.page.paginator.count,
                                 'current_page_no': self.page.number,
                                 'limit': self.page_size,
                                 'last_page': self.page.has_next()
                             }}}, 
                         status=status.HTTP_200_OK)

即使我将查询参数设置为不同的值,page_size的输出始终为10。例如:如果用户在查询参数中设置page_size=2,则应该将其更改为2。在

编辑:

视图的代码

^{pr2}$

Tags: self应用程序data参数sizestatuscountpage
1条回答
网友
1楼 · 发布于 2024-06-26 14:41:09

paginate_queryset()request作为其第二个位置参数。需要request,这样就可以从中得到page_size

您没有传递request,所以我很想知道这个视图为什么工作——因为Python应该引发一个TypeError,因为参数数量不正确。

无论如何,请尝试更新代码,将request作为第二个参数传递:

page = self.paginate_queryset(pc, request)

相关问题 更多 >