[英]How to change the initial value of a nested field to zero instead of null value.?
如何將嵌套字段的初始值更改為零而不是 null 值。?
在我的情況下,獎品model 是model的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
}
如何將此null值更改為零。?
預期 output
>>> serializer.data
{
"album_name": "The Grey Album",
"artist": "Danger Mouse",
"prize": "0.0"
}
您可以在AlbumSerializer
上使用SerializerMethodField
,如下所示:
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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.