我正在创建一个 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 %}
当我的号码显示在 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 %}