Python “Django DecimalField生成”;“量化结果对于当前上下文有太多的数字”;保存时出错
我有一个这样的模型:Python “Django DecimalField生成”;“量化结果对于当前上下文有太多的数字”;保存时出错,python,django,django-models,decimal,Python,Django,Django Models,Decimal,我有一个这样的模型: class ModelWithDecimal(models.Model): value = models.DecimalField(max_digits=2,decimal_places=2) …然而当我尝试 obj = ModelWithDecimal(value="1.5") obj.save() 我得到一个量化结果,在保存过程中,当前上下文的位数过多。这不是可以吗?它小于2位,小数点后小于2位 模型也会发生同样的错误: class ModelWithDec
class ModelWithDecimal(models.Model):
value = models.DecimalField(max_digits=2,decimal_places=2)
…然而当我尝试
obj = ModelWithDecimal(value="1.5")
obj.save()
我得到一个量化结果,在保存过程中,当前上下文的位数过多。这不是可以吗?它小于2位,小数点后小于2位
模型也会发生同样的错误:
class ModelWithDecimal(models.Model):
value = models.DecimalField(max_digits=11,decimal_places=8)
…和尝试的实例
obj = ModelWithDecimal(value="1005.7")
obj.save()
同样,它似乎应该是有效的:总共只有4位数字(小于11),小数点后只有1位(小于8)
怎么了 问题在于,每个实例都会使用小数点的所有右侧小数位
,而不管是否有非零位,小数点左侧只保留(max\u digits-decimal\u places)
位
因此,对于十进制字段(max_digits=2,decimal places=2)
,小数点左侧有零位数的空间,而“1.5”不适合。对于DecimalField(最大位数=11,小数位数=8)
,小数点左边只有三位数的空间,而“1005.7”不适合
展开您的max_位
,这些值将起作用