如何在Django模板中进行数学运算?


103

我想做这个:

100 - {{ object.article.rating_score }} 

因此,例如,输出将是20,如果{{ object.article.rating_score }}追平80

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

Answers:


154

您可以使用add过滤器:

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

36
对于乘法和除法,您可以滥用内置widthratio模板标记。要计算a * b用途{% widthratio a 1 b %},请使用a / b用途{% widthratio a b 1 %}。唯一的缺点是,返回之前将结果四舍五入为整数。使用Django的widthratio模板标签乘法除法-

2
@Erik应该是自己的答案-更好的解决方案。
nhinkle

1
更新了链接以添加到文档中
rnevius 2015年

如果我这样使用:{{object.article.rating_score | add:“ {%widthratio object.article.rating_score 100 5%}”}}
Mushahid Khan

我可以在应用如下百分比后添加@Daniel Roseman:{{object.article.rating_score | add:“ {%widthratio object.article.rating_score 100 5%}”}}
Mushahid Khan

31

使用django-mathfilters。除了内置的添加过滤器外,它还提供了过滤器以减去,相乘,除以和取绝对值。

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


19

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


您是如何在模板中循环执行的?
bismigalis 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.