在django模板中将负数转换为正数?

时间:2014-11-10 08:53:23

标签: python django

如何在django模板中将负数转换为正数?

{% for balance in balances %}
    {{ balance.amount }}
{% endfor %}

如果balance.amount为负数,我想将其转换为正数。

4 个答案:

答案 0 :(得分:8)

我建议安装django-mathfilters

然后您可以像这样简单地使用abs过滤器:

{% for balance in balances %}
    {{ balance.amount|abs }}
{% endfor %}

答案 1 :(得分:5)

如果您不想/无法安装django-mathfilters

您可以非常轻松地制作自定义过滤器:

from django import template
register = template.Library()


@register.filter(name='abs')
def abs_filter(value):
    return abs(value)

答案 2 :(得分:4)

来自this SO

{% if qty > 0 %}
  Please, sell {{ qty }} products.
{% elif qty < 0 %}
  Please, buy {{ qty|slice:"1:" }} products.
{% endif %}

答案 3 :(得分:2)

这可以不添加django-mathfilters,但这不是一个很好的做法。

{% if balance.amount < 0 %}
{% widthratio balance.amount 1 -1 %}
{% else %}
{{ balance.amount }}
{% endif %}

Widthratio用于创建条形图,但可用于multiplication