2010-04-05 65 views
2

我做錯了什麼?django如何保存十進制值?

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) 

ID我做這樣的事情:

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

計數給出爲MyModel並投票的所有收視率的總和是那些評級陣列,他們的分裂給了平均得分爲爲MyModel(對不起,如果我形容不正確的,由於我的英語很差)

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

然後「什麼」在數據庫中結束了,但等級不。

爲什麼?我使用錯誤的字段類型?

Alan。

回答

2

max_digits是之前之後的小數點後的位數。使用您的設置,它可以讓您存儲介於0.00和0.99之間的數字。這樣對嗎?我無法弄清變量的平均值的取值範圍。

+0

是的,例如,如果收視率可以介於0和5之間,那麼'max_digits'需要是3. – 2010-04-05 23:22:41

+0

好的,就是這樣。我會盡快測試。 – 2010-04-06 07:56:17

+0

這似乎是:)。謝謝。 – 2010-04-06 16:13:56

1

模型不驗證。你使用的類型幾乎可以處理諸如syncdb之類的東西,而不是實際的數據格式,這就是Form的用途。