我使用Django和DRF,模型中有很多十进制字段,比如
amount = models.DecimalField(max_digits=16, decimal_places=4)
我想要格式输出两个小数位,在每个序列化器字段中都可以这样做
amount = serializers.DecimalField(max_digits=16, decimal_places=2)
有一种更简单的方法吗?
答案 0 :(得分:1)
在DRF中,有一种方法可以仅覆盖选项,但不覆盖整个字段:
class MySerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('amount',)
extra_kwargs = {
'amount': {'max_digits': 16, 'decimal_places': 2}
}
或者如果你有许多相同的十进制字段,你应该使用自己的自定义DecimalField和预定义的公共选项。