【问题标题】:Django templates: Convert float to integer if it ends with .0?Django模板:如果浮点数以.0结尾,则将其转换为整数?
【发布时间】:2010-12-31 04:28:12
【问题描述】:

在 Django 模板中,有没有办法将浮点数转换为整数当且仅当它以 .0 结尾?

我的数据库中有一个浮点数的人口字段。有时它“真的”是一个浮点数,以 0.5 结尾,但更多时候它以 0.0 结尾,因为有很多人,在这种情况下,我宁愿只显示一个整数。

{{ place.population }} people

对于在 Django 中解决这个问题的巧妙方法有什么想法吗?

【问题讨论】:

  • 听起来像是在自定义过滤器中必须做的事情。

标签: django django-templates


【解决方案1】:

您可以将floatformat filter 与否定参数一起使用!

【讨论】:

  • 来自文档:“使用不带参数的 floatformat 等同于使用带 -1 参数的 floatformat。”
  • 注意:这将舍入比给定负参数更多小数位数的值!
【解决方案2】:

您可以编写一个模板标签,但我建议在您的模型上使用此方法。

class Country(models.Model):

    ...

    def get_population(self):
        if self.population == int(self.population):
            self.population = int(self.population)
        return self.population

然后在您的模板中,而不是

{{ obj.population }}

你会使用这个:

{{ obj.get_population }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2020-04-18
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多