Py学习  »  Django

如何将查询中设置的页面大小转换为分页元数据django rest框架

DjangoNoob • 5 年前 • 1267 次点击  

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

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)

即使将查询参数设置为其他值,页面大小的输出也始终为10。例如:如果用户在查询参数中设置page_size=2,则应该改为2。

编辑

视图的代码

class ListPCAPIView(ListAPIView):
serializer_class = ListPCSerializer

def get(self, request):
    user = self.request.user
    pc = Pc.objects.filter(
        user_id=user).order_by('pc_name')
    if pc:
        page = self.paginate_queryset(pc)
        if page is not None:
            serializer = self.get_serializer(page, many=True)
            return self.get_paginated_response(serializer.data)
    else:
        raise CustomException(
            detail="pc list is empty.",
            status_code=status.HTTP_400_BAD_REQUEST)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47673
 
1267 次点击  
文章 [ 1 ]  |  最新文章 5 年前