You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Rest Framework分页响应中新增total_pages总页数字段

解决方案

你只需要在自定义的StandardResultsSetPagination类中重写get_paginated_response方法,在返回的响应字典里新增total_pages字段,直接赋值为分页实例自带的num_pages属性即可,无需额外手动计算总页数。

完整实现代码如下:

from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response

class StandardResultsSetPagination(PageNumberPagination):
    page_size = 100
    page_size_query_param = 'page_size'
    max_page_size = 1000

    def get_paginated_response(self, data):
        return Response({
            'count': self.page.paginator.count,
            # 新增总页数字段,调用分页器内置属性
            'total_pages': self.page.paginator.num_pages,
            'next': self.get_next_link(),
            'previous': self.get_previous_link(),
            'results': data
        })

修改完成后接口返回的响应就会自动携带total_pages字段,完全符合你期望的结构。

内容的提问来源于stack exchange,提问作者Jonathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:15:05