Django:DecimalField值显示

2024-04-23 10:10:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型有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是正确的选择吗?


Tags: 用户模型模板truemodelsnullmaxpoints
2条回答

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

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

我没试过,但应该有用。

您可以在模板中执行{{decimal_field|floatformat}},只有在必要时才会舍入并显示“.0”。

更多参考template - floatformat

相关问题 更多 >