如何将嵌套字段的初始值更改为零而不是空值。?
在我的例子中,大奖模型是一种OneToOneField to 相册
串行化器
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']
有些项目有奖励数据,但有些项目没有奖励数据。如果没有奖励数据,它将显示为空,
>>> 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"
}
发布于 2019-10-24 15:01:09
您可以在您的SerializerMethodField
上使用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']
https://stackoverflow.com/questions/58542427
复制相似问题