Skip to main content
 首页 » 编程设计

python之Django 如何保存十进制值

2024年09月03日38jyk

我做错了什么?

class MyModel(models.Model): 
  name = models.CharField(max_length=100, verbose_name=_("Name"), blank=False, null=False) 
  rating = models.DecimalField(max_digits=2, decimal_places=2, default=0) 

我做了类似的事情:

average = count/len(votes)  
mymodel.rating = average 
mymodel.save() 

count 是给定 MyModel 的所有评分的总和,而 votes 是这些评分的数组,它们的除法给出了 MyModel 的平均评分(对不起,如果我描述了它由于我的英语不好而错误)。

如果我改变之前:

mymodel.name = 'anything' 
mymodel.save() 

然后“任何东西”都会进入数据库,但评分不会。

为什么?我使用了错误的字段类型吗?

艾伦。

请您参考如下方法:

max_digits 是小数点之前和之后的位数。通过您的设置,它允许您存储 0.00 到 0.99 之间的数字。这样对吗?我无法计算出average 变量的值范围。