Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Rest框架格式十进制字段,小数点后2位(用于输出)_Django_Django Rest Framework - Fatal编程技术网

Django Rest框架格式十进制字段,小数点后2位(用于输出)

Django Rest框架格式十进制字段,小数点后2位(用于输出),django,django-rest-framework,Django,Django Rest Framework,我使用Django和DRF,在模型中有许多十进制字段,如 amount = models.DecimalField(max_digits=16, decimal_places=4) 我想格式输出两位小数,在每个序列化字段可以做到这一点 amount = serializers.DecimalField(max_digits=16, decimal_places=2) 有一种更简单的方法吗?在DRF中,有一种方法仅覆盖选项,而不覆盖整个字段: class MySerializer(serial

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

amount = models.DecimalField(max_digits=16, decimal_places=4)
我想格式输出两位小数,在每个序列化字段可以做到这一点

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

有一种更简单的方法吗?

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

class MySerializer(serializers.ModelSerializer):

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

或者,如果有许多相同的十进制字段,则应使用自定义的十进制字段和预定义的常用选项。

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

class MySerializer(serializers.ModelSerializer):

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

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

这是唯一的方法:)您的意思是比更改kwarg更简单?@MarcusLind也许我的想法不好,我想在中间件中使用process\u response方法,所以只修改一个位置这是唯一的方法:)你的意思是比更改kwarg更简单?@MarcusLind也许我的想法不好,我想在中间件中使用process\u response方法,所以只修改一个位置