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

kan*_*end 11 python django

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

{% for balance in balances %}
    {{ balance.amount }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

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

Kry*_*ski 9

我想建议安装django-mathfilters.

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

{% for balance in balances %}
    {{ balance.amount|abs }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)


小智 7

这无需添加 django-mathfilters 即可工作,但这不是一个很好的做法。

{% if balance.amount < 0 %}
{% widthratio balance.amount 1 -1 %}
{% else %}
{{ balance.amount }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Widthratio用于创建条形图,但可用于乘法

  • 天啊!`widthratio` 相乘!呵呵,跳出框框思考的方式——我喜欢它最奇怪的方式。是时候发布公共服务公告了。如果您决定使用上述内容,请添加“{# widthratio is being used to multipliedbalance.amount times -1 #}”以使此代码具有一点意义。 (2认同)

Mar*_*rcs 5

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

您可以很容易地创建自定义过滤器:

from django import template
register = template.Library()


@register.filter(name='abs')
def abs_filter(value):
    return abs(value)
Run Code Online (Sandbox Code Playgroud)