首页 > 解决方案 > 更改序列化 JSON 输出

问题描述

在我的 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"}]}

任何帮助实现这一点将不胜感激,谢谢。

标签: djangodjango-rest-frameworkdjango-views

解决方案


只需更新您的视图,返回:

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设置中指定的渲染器。


推荐阅读