Django:重写list方法,修改drf默认查询的返回格式

需求:

  由于前端框架需要后端返回数据格式为{"rows: "[{"id":1,"project_name":"短信"},{"id":2,"project_name":"短信"}], "total": 2},

默认情况下ListAPIView视图获取列表所有数据返回数据格式为:[{"id":1,"project_name":"短信"},{"id":2,"project_name":"短信"}]

class ServerInfoList(generics.ListAPIView):
    """
    获取所有服务器信息
    """
    queryset = ServerInfo.objects.all()
    serializer_class = ServerInfoSerializers

但是前端框架需要返回格式为:{"rows: "[{"id":1,"project_name":"短信"},{"id":2,"project_name":"短信"}], "total": 2},

分析:

  上面的ServerInfo类继承自子类视图ListAPIView,返回了list方法,

 

 其中list方法来自于继承的mixins.ListModelMixin,所以需要修改返回结果就只需要重写这个list方法就可以了

 

 最终修改如下:

 

 测试一下看返回格式:

 

posted @ 2020-10-13 09:53  秋寻草  阅读(1984)  评论(0编辑  收藏  举报