2012-08-15 64 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) 

没有尝试过,但它应该工作。