在Django Rest Framework中如何在响应返回当前分页限制current_items_per_page
在Django Rest Framework分页响应中返回当前每页条目数
要获取当前请求使用的分页限制参数current_items_per_page,你只需要在CustomPageNumberPagination的generate_response方法中使用self.page_size属性即可。
完整代码示例
from rest_framework.pagination import PageNumberPagination from rest_framework.response import Response class CustomPageNumberPagination(PageNumberPagination): # 配置默认分页参数(可根据需求调整) page_size = 10 page_size_query_param = 'page_size' # 允许客户端通过该参数自定义每页条数 max_page_size = 100 # 限制最大每页条数 def generate_response(self, data, status=200): # 替换self."?"为self.page_size current_items_per_page = self.page_size return Response({ 'data': data, 'current_items_per_page': current_items_per_page, 'total_items': self.page.paginator.count, 'current_page': self.page.number, 'total_pages': self.page.paginator.num_pages }, status=status)
关键说明
self.page_size会自动适配当前请求的分页设置:如果客户端通过page_size参数指定了每页条数(且不超过max_page_size),它会返回该值;否则使用默认的page_size。- 如果你没有开启客户端自定义分页的需求(即不设置
page_size_query_param),self.page_size将始终等于你配置的默认值。
内容的提问来源于stack exchange,提问作者MdHassan413
相关产品推荐
相关产品推荐

