如果默认的分页功能无法满足要求,可以自行定义分页器。
PageNumberPagination
前端访问网址形式:
GET http://127.0.0.1/api/students/?page=4
可以在子类中定义的属性:
page_size :每页数目;
page_query_param :前端发送的页数关键字名,默认为"page";
page_size_query_param :前端发送的每页数目关键字名,默认为None;
max_page_size :前端最多能设置的每页数量。
from rest_framework.pagination import PageNumberPagination
class StandardPageNumberPagination(PageNumberPagination):
page_size_query_param = 'page_size' # 每页数据条数
max_page_size =
class StudentViewSet(ModelViewSet):
queryset = StudentsModel.objects.all()
serializer_class = StudentsSerializer
pagination_class = StandardPageNumberPagination
LimitOffsetPagination
前端访问网址形式:
GET http://127.0.0.1/api/students/?limit=100&offset=400
可以在子类中定义的属性:
default_limit: 默认限制,默认值与PAGE_SIZE设置为一致;
limit_query_param limit:参数名,默认 'limit;
offset_query_param: offset 参数名,默认 ‘offset’;
max_limit :最大 limit 限制,默认 None。
from rest_framework.pagination import LimitOffsetPagination
class StudentViewSet(ModelViewSet):
queryset = StudentsModel.objects.all()
serializer_class = StudentsSerializer
pagination_class = LimitOffsetPagination