3

我有一个模型DecimalField

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

当我在模板中显示此字段时,它总是显示诸如0.0或之类的值1.0。但我想让这种行为更加用户友好:

  1. 例如,如果用户输入1是否显示1(现在是 1.0)。
  2. 如果用户输入是1.5它应该显示1.5
  3. 默认值为0,而不是0.0

做这个的最好方法是什么?我的情况是DecimalField正确的选择吗?

4

2 回答 2

13

你可以 {{decimal_field|floatformat}}在模板中做,它只会在必要时四舍五入并显示“.0”。

更多参考模板 - floatformat

于 2012-08-16T04:28:56.473 回答
-1

如果由于某种原因您不能/不想使用 django 模板,您也可以修改模型保存方法,将其添加到模型的底部:

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

没试过,但应该可以。

于 2015-11-26T09:08:49.380 回答