改变Django Rest中的响应

时间:2018-04-03 16:10:14

标签: django django-rest-framework

我有一个ListAPIView,它返回下面的json响应:

[
 {'name': 'Andrew'},
 {'name': 'Daniel'},
]

我想改变它,以便响应如下:

{
 "Users": {
    [
     {'name': 'Andrew'},
     {'name': 'Daniel'},
    ]
 }
}

我怎么能这样做?

编辑:下面是我的序列化程序和视图

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('name',)

class UserReadView(ListAPIView):
    lookup_field = 'id'
    serializer_class = UserSerializer

1 个答案:

答案 0 :(得分:3)

您可以在list中实施UserReadView方法并更新其中的响应正文:

class UserReadView(ListAPIView):
    lookup_field = 'id'
    serializer_class = UserSerializer

    def list(self, request, *args, **kwargs):
        response = super().list(request, *args, **kwargs)
        return Response({'Users':{response.data}})