django如何保存小数值?

时间:2010-04-05 21:16:09

标签: python django decimal

我做错了什么?

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的所有评级的总和,投票是这些评级的数组,他们的分区给出MyModel的平均评分(对不起,如果我因为我的英语不好而描述不正确)

if i change previous to:
mymodel.name = 'anything'
mymodel.save()

然后'任何'在数据库中结束,但评级不会。

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

艾伦。

2 个答案:

答案 0 :(得分:2)

max_digits是前的小数点后的的位数。使用您的设置,您可以存储0.00到0.99之间的数字。这样对吗?我无法弄清楚平均值变量的值范围。

答案 1 :(得分:1)

模型不进行验证。您使用的类型几乎处理syncdb等事务而不是数据的实际格式化,这就是Form的用途。