django - 更改序列化 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"}]}
任何帮助实现这一点将不胜感激,谢谢。
解决方案
只需更新您的视图,返回:
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
设置中指定的渲染器。
推荐阅读
- php - 在 PHP 上将登录与 Google 帐户集成
- angular - npm 在单独的文件中运行脚本
- entity-framework - 无法跟踪实体类型的实例,因为已在跟踪具有键值的另一个实例。但不是钥匙
- go - 为什么我的 golang goroutine 代码会死锁
- spring-boot - 在 Spring Boot 应用程序中过滤到修改后的响应标头
- python - 用 Python 解析 XML:如何将兄弟标签变成子标签?
- html - Angular Material 分页器页面大小无法正确呈现
- android - 如何根据可见性自动调整两个垂直按钮之间的边距?
- azure - 使用 powershell 将 Azure 密钥保管库证书导入应用服务?
- javascript - 更改 Embed 或 iframe 的标题