DecimalField的变量返回类型

我有一个类似这样的模型:

class Item(models.Model):
    value_a = models.DecimalField(default=0.0,decimal_places=4,max_digits=20)
    value_b = models.DecimalField(default=0.0,max_digits=20)
    value_c = models.DecimalField(default=0.0,max_digits=20)

现在假设我有以下物品:

a = Item()
a.value_a = 1.20
a.value_b = 2
a.value_c = Decimal('20.20')
a.save()

当我访问对象(从数据库检索之后)的值时,我得到:

a.value_a = 1.2 <float>
a.value_b = 2 <int>
a.value_c = Decimal('20.20')

请注意,我的数据库数据类型可能会有所不同。

为什么使用DecimalField?我不能总是以python Decimal的形式获取值吗?

zhangqiupu2008 回答:DecimalField的变量返回类型

如果您在更改save()的值后Item每创建一个value,Django会将它们转换为Python小数。

a = Item()
a.value = 1.20
a.save()
item_a = Item.objects.get(id=a.id)
print(item_a.value)  # will be Decimal('1.20')
本文链接:https://www.f2er.com/3157411.html

大家都在问