Django Rest Framework格式十进制字段到2位小数(用于输出)

时间:2017-11-16 01:56:38

标签: django django-rest-framework

我使用Django和DRF,模型中有很多十进制字段,比如

amount = models.DecimalField(max_digits=16, decimal_places=4)

我想要格式输出两个小数位,在每个序列化器字段中都可以这样做

amount = serializers.DecimalField(max_digits=16, decimal_places=2)

有一种更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

在DRF中,有一种方法可以仅覆盖选项,但不覆盖整个字段:

class MySerializer(serializers.ModelSerializer):

    class Meta:
        model = MyModel
        fields = ('amount',)
        extra_kwargs = {
            'amount': {'max_digits': 16, 'decimal_places': 2}
        }

或者如果你有许多相同的十进制字段,你应该使用自己的自定义DecimalField和预定义的公共选项。