【问题标题】:How to do math in a Django template?如何在 Django 模板中进行数学运算?
【发布时间】:2011-09-11 05:39:36
【问题描述】:

我想这样做:

100 - {{ object.article.rating_score }} 

例如,如果{{ object.article.rating_score }} 等于80,则输出将为20

如何在模板级别执行此操作?我无权访问 Python 代码。

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    您可以使用add 过滤器:

    {{ object.article.rating_score|add:"-100" }}
    

    【讨论】:

    • 对于乘法和除法,您可以滥用内置的widthratio 模板标签。要计算 a*b,请使用 {% widthratio a 1 b %},对于 a/b,请使用 {% widthratio a b 1 %}。唯一的缺点是,结果在返回之前会四舍五入为整数。 Using Django’s widthratio template tag for multiplication & division
    • @Erik 这应该是它自己的答案 - 更好的解决方案。
    • 更新了文档中add的链接
    • 如果我这样使用会怎样:{{ object.article.rating_score|add:"{% widthratio object.article.rating_score 100 5 %}" }}
    • @Daniel Roseman 我可以在应用这样的百分比后添加:{{ object.article.rating_score|add:"{% widthratio object.article.rating_score 100 5 %}" }}
    【解决方案2】:

    使用django-mathfilters。除了内置的加法过滤器,它还提供了减法、乘法、除法和取绝对值的过滤器。

    对于上面的具体示例,您可以使用{{ 100|sub:object.article.rating_score }}

    【讨论】:

      【解决方案3】:

      通常建议您在视图中进行此计算。否则,您可以使用添加过滤器。

      【讨论】:

      • 你是如何在模板的循环里面做的?
      猜你喜欢
      • 2019-07-16
      • 2020-10-28
      • 1970-01-01
      • 2018-02-21
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多