2012-08-15 60 views
3

我有DecimalField模型:Django的:DecimalField值顯示

points_player1 = models.DecimalField(max_digits=3, decimal_places=1, blank=True, null=True) 

當我在顯示模板這個領域,它總是顯示像0.01.0等 值,但我想使這個問題的更多用戶 - 友好:

  1. 如果用戶輸入,例如,是1它顯示1(現在它的1.0)。
  2. 如果用戶輸入是1.5它應該顯示1.5
  3. 默認值爲0,而不是0.0

什麼是最好的方式來做到這一點?對我而言,DecimalField是不錯的選擇?

回答

9

您可以在模板中執行{{decimal_field|floatformat}},該模板將四捨五入並僅在必要時顯示「.0」。

更多參考template - floatformat

+0

輝煌。謝謝! – Rusty 2012-08-16 08:54:18

-1

您也可以修改模型保存方法,如果由於某種原因,你不能/不想使用Django模板,添加以下內容到模型的底部:

def save(self, *args, **kwargs): 
    self.points_player1 = float(self.points_player1) 
    super(YourModelName, self).save(*args, **kwargs) 

沒有嘗試過,但它應該工作。