• django framework插件类视图分页


    分页

    继承APIView类的视图中添加分页

    from rest_framework.pagination import PageNumberPagination
    class MyPageNumberPagination(PageNumberPagination):
        # 定义一个PageNumberPagination的子类
        # 如需改变参数,重写其属性即可
        page_size = 6       #每页显示条数
        page_query_param = 'page'   # url中的参数的key
        page_size_query_param="size"    # 可以在url中使用size参数临时改变当页显示的数目
        max_page_size=10 # 可以在url中使用size参数临时改变当页显示的数目,但是最大只能显示10条
    
    
    class AuthorsView(APIView):
        def get(self,request):
            '''分页展示作者列表'''
            author_list = models.Author.objects.all()
            # 分页
            # 实例化一个自己定义的MyPageNumberPagination对象
            pnp = MyPageNumberPagination()
            # 调用paginate_queryset方法来生成新的author_list
            # 参数分别为,author_list,request以及当前的视图
            page_author_list = pnp.paginate_queryset(author_list,request,self)
            # 在将新生成的page_author_list序列化
            auts = serializer.AuthorModelSerializers(page_author_list,many=True)
            return Response(auts.data)
    

    继承ModelViewSet类的视图中添加分页
    如果我们的视图继承了ModelViewSet类,那么如需分页的时候,只需要在视图类中加入配置参数即可,如下:

    pagination_class = MyPageNumberPagination   
    

      注意:

        1、MyPageNumberPagination类是我们自己定义的类,见上面一个示例。

        2、pagination_class后面直接跟上类名即可,无需加列表(因为分页不想其他组件,分页只可能有一个)

    全局配置分页属性
    只需要在REST_FRAMEWORK配置中加入 配置属性的键值对即可,如下:

    REST_FRAMEWORK = {
        .....
        "PAGE_SIZE":1
    }
  • 相关阅读:
    HTC G7 搜索和感光按键修改
    Delphi开源组件SynEdit
    (转)Delphi获取windows系统版本信息
    TDateTime转UTC的时间差
    Windows7 C盘无法读写文件
    Convert UTC string to TDatetime in Delphi
    delphi抓全屏图,游戏窗口,游戏Client窗口
    ADO Table Locate
    Delphi与管道操作
    Delphi从UTC (GMT)返回时差
  • 原文地址:https://www.cnblogs.com/vinic-xxm/p/11705807.html
Copyright © 2020-2023  润新知