django - 如何将嵌套字段的初始值更改为零而不是空值。?
问题描述
如何将嵌套字段的初始值更改为零而不是空值。?
在我的情况下,奖品模型是一个OneToOneField模型专辑
串行器
class PrizeSerializer(serializers.ModelSerializer):
class Meta:
model = Prize
fields = ['title', 'amount']
class AlbumSerializer(serializers.ModelSerializer):
prize = PrizeSerializer(read_only=True)
class Meta:
model = Album
fields = ['album_name', 'artist', 'prize']
有些项目有奖品数据,但有些没有奖品数据。如果没有奖品数据,它将显示为null,
>>> serializer.data
{
"album_name": "The Grey Album",
"artist": "Danger Mouse",
"prize": null
}
如何将此空值更改为零。?
预期产出
>>> serializer.data
{
"album_name": "The Grey Album",
"artist": "Danger Mouse",
"prize": "0.0"
}
解决方案
您可以SerializerMethodField
在您的 上使用 a AlbumSerializer
,如下所示:
class AlbumSerializer(serializers.ModelSerializer):
prize = serializers.SerializerMethodField()
def get_prize(self, instance):
if hasattr(instance, 'prize'):
return PrizeSerializer(instance.prize).data
return "0.0"
class Meta:
model = Album
fields = ['album_name', 'artist', 'prize']
推荐阅读
- react-native - 无法连接到开发服务器 [React-Native]
- neo4j - CSV 数据导入 neo4j
- c# - C# 登录 PDF 文件后如何检测 2 个修订版之间的所有更改
- javascript - 2020-12-01T13:01:26.922Z 至 2020 年 12 月 1 日 14:33 反应
- r - r 在 dcast 之后计算行中的值
- javascript - 如何将 TwinCat 3 HMI 中的 CSS 元素链接到参数
- arrays - SQL 行计数与定义为 10000 的数组计数不同。请提出建议。期望 SQL 行数应与 10000 相同
- php - 我们如何将 phpmyadmin 数据库与适当的域链接?
- amazon-web-services - 限制 lambda 权限以访问 VPC
- r - 如何在 facet_wrap 图中以数字方式组织变量贴标机?