强制DecimalField将字符串转换为十进制Django

2024-04-25 00:03:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个序列化程序:

class Ticker24hSerializer(serializers.Serializer):
        change = serializers.DecimalField(max_digits=19, decimal_places=4)
        change_percent = serializers.FloatField()
        current = serializers.DecimalField(max_digits=19, decimal_places=4)
        high = serializers.DecimalField(max_digits=19, decimal_places=4)
        low = serializers.DecimalField(max_digits=19, decimal_places=4)
    
        def update(self, instance, validated_data):
            pass
    
        def create(self, validated_data):
            pass

字典包含如下的十进制值:

dict = {
    "change": "2128.5000",
    "change_percent": "5.632",
    "current": "39517.3141",
    "high": "40900.0000",
    "low": "37350.0000"
}

但是,这些值作为字符串存储在字典中

当我序列化dict时:

result = serializer(dict).data
print(result)

我明白了:

{
    "change": "2128.5000",
    "change_percent": 5.632,
    "current": "39517.3141",
    "high": "40900.0000",
    "low": "37350.0000"
}

小数字段接受字符串,如何使序列化程序存储小数