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方法就可以了

 最终修改如下:

 测试一下看返回格式:

原文地址:https://www.cnblogs.com/gcgc/p/13807050.html