当我在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 %}
您可以在模型中创建一个新功能,如:
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 %}
您可以编写一个调用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())