我正在创建一个表,并根据+或 - 值将文本着色为绿色或红色,有没有办法可以从数字中删除符号

问题描述 投票:0回答:4

当我在html中显示时,我试图从我的号码中删除' - '符号,因为我不再需要它,因为我对文本进行了颜色编码。这是可能的,如果有的话,我怎么能删除 - 符号,如果有的话?

表循环如下

{% for sale in page_obj %}
            <tr>
                <td>{{sale.transaction.currency}}</td>
                <td>{{sale.amount_sold}}</td>
                <td>{{sale.amount_per_coin_sold}}</td>
                <td>{{sale.total_price_sold}}</td>
                <td>{{sale.transaction.amount_per_coin}}</td>
                <td>{{sale.date_sold|date:"j N Y"}}</td>
                {% if sale.profit_loss < 0 %}
                    <td style = "color:red">{{ sale.profit_loss }}</td>
                {% else %}
                <td style = "color:green">{{ sale.profit_loss }}</td>
                {% endif %}  
                {% if sale.profit_loss_percent < 0 %}
                <td style = "color:red">{{sale.profit_loss_percent}}</td>
                {% else %}
                <td style = "color:green">{{sale.profit_loss_percent}}</td>
                {% endif %}
                 <td><a href="{% url 'sale-detail' sale.id %}">View</a></td>
            </tr>
            {% endfor %}
django django-templates unsigned django-template-filters
4个回答
0
投票

您可以在模型中创建一个新功能,如:

def get_absolute_profit_loss(self):
    return abs(self.profit_loss)

然后在模板中你可以这样做:

{% if sale.profit_loss < 0 %}
     <td style = "color:red">{{ sale.get_absolute_profit_loss }}</td>
{% else %}
     <td style = "color:green">{{ sale.profit_loss }}</td>
{% endif %}       

0
投票

您可以编写一个调用abs()的自定义模板过滤器。

@register.filter
def absolute(val):
    return abs(val)

并使用它:

{% load my_template_tags %}
{% if sale.profit_loss < 0 %}
    <td style = "color:red">{{ sale.profit_loss|absolute }}</td>
{% else %}

0
投票

你可以write a filter获得绝对值。

@register.filter
def abs(value):
    '''
    Returns the absolute value of a number without the sign
    '''
    return abs(value)

然后在您的模板中,您可以将过滤器应用于您的值

{{ sale.profit_loss|abs }}

如果您不想编写自己的过滤器,django-mathfilters模块中已经有一个abs过滤器。


0
投票

您可以按照其他答案中的说明创建自定义过滤器,或者您也可以向模型添加方法,例如。

def absolute_profit_loss(self):
    return abs(self.profit_loss())
© www.soinside.com 2019 - 2024. All rights reserved.