drf 分页 LimitOffsetPagination 简单使用

settings

REST_FRAMEWORK = {
    # 分页,limit大小
    "PAGE_SIZE": 2,
}

views

class BlogView(APIView):

    def get(self, request, *args, **kwargs):
        queryset = models.Blog.objects.order_by('-id').all()
        # 实例化自定义类
        pager = LimitOffsetPagination()
        # 记录最大id
        max_id = request.query_params.get('max_id')
        if max_id:
            # 查询比最大id小的所有数据
            queryset = queryset.filter(id__lt=max_id)
        result = pager.paginate_queryset(queryset, request, self)
        ser = BlogModelSerializer(instance=result, many=True)
        # 把序列化结果给get_paginated_response
        res = pager.get_paginated_response(ser.data)
        res_code.res_success(data=ser.data, msg='查询成功')
        return res

image

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