drf 自定义 分页类(基于PageNumberPagination)

分页类

# 自定义分页类
class MyPageNumberPagination(PageNumberPagination):
    # 默认每页大小
    page_size = 1
    # 最大每页大小
    max_page_size = 3
    # 控制每页大小的查询字段
    page_size_query_param = "page_size"

views

class BlogView(APIView):
    """
    get:
    返回所有blog
    post:
    添加博客
    """
    authentication_classes = [ParamsAuthentication, ]

    def get(self, request, *args, **kwargs):
        queryset = models.Blog.objects.order_by('-id').all()
        # 实例化自定义类
        pager = MyPageNumberPagination()
        result = pager.paginate_queryset(queryset, request, self)
        ser = BlogModelSerializer(instance=result, many=True)
        res_code.res_success(data=ser.data, msg='查询成功')
        return Response(res_code.dict)

结果

image

posted @ 2022-10-09 11:47  Sherwin_szw  阅读(41)  评论(0编辑  收藏  举报