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

I'm creating a table and am coloring the text green or red depending of + or - value, is there a way I can remove the sign from the number

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

Table 在下面循环

{% 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 %}

您可以编写调用 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 %}

你可以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 过滤器。

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

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

您可以在模型中创建一个新函数,例如:

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 %}