更改序列化JSON输出

时间:2018-05-03 14:58:15

标签: django django-rest-framework django-views

在我的Django项目中,我有一个django rest框架序列化器

class CarSerializer(serializers.ModelSerializer):

采用过滤后的查询集,然后将其序列化。

然后我使用JSONRenderer().render( testserializer.data ) 将其转换为JSON

我面临的问题是我需要更改输出,目前我得到了这个:

b'[{"car_age":"1","car_type":"1"},{"car_age":"4","car_type":"2"}]'

但我希望视图中的返回响应具有此json有效负载:

{“cars”:[{"car_age":"1","car_type":"1"},{"car_age":"4","car_type":"2"}]}

非常感谢任何帮助实现这一目标,谢谢。

1 个答案:

答案 0 :(得分:2)

只需更新您的观点,请返回:

return JSONRenderer().render({'cars':testserializer.data})

而不是

return JSONRenderer().render(testserializer.data)

此外,不是每次手动渲染响应,而是使用Response类的常见做法:

from rest_framework.response import Response
return Response({'cars':testserializer.data}) 

这将使用DEFAULT_RENDERER_CLASSES设置中指定的渲染器。