2

我有问题声明,我需要我的字段应该将值存储为十进制,但是在调用它时,该字段应该返回一个四舍五入的整数值

例子

我的模型.myfield = 12.61

mymodel.save()

输入

我的模型.myfield

输出

13

如果可能的话

mymodel.myfield.get_raw

输出

12.61

我可以使用 django 自定义模型字段吗?

class MyField(models.DecimalField):

    def __init__(self, verbose_name=None, name=None, max_digits=None,
                 decimal_places=None, **kwargs):
        super(MyField, self).__init__(*args, **kwargs)

    def get_raw(self, value):
        return value

    def to_python(self, value):
        if value is None:
            return value
        try:
            return decimal.Decimal(value)
        except decimal.InvalidOperation:
            raise exceptions.ValidationError(
                self.error_messages['invalid'],
                code='invalid',
                params={'value': value},
            )
4

0 回答 0