如何在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
相关产品推荐
相关产品推荐

