我已经创建了一个自定义标记来隐藏HTML中的零值。我使用它来隐藏货币格式的数字,当它的值为零时。
这是我的自定义标记:
def hideifz(value):
return '' if value == 0 else value
问题是这个标签删除了我的一些HTML。
这是我模板的相关部分:
<div class="price">
<span class="price-new">{{ publication.price_record.low_price|CLP }}</span>
<span class="price-old">{{ publication.price_record.high_price|hideifz|CLP }}</span>
</div>
此HTML用于显示产品价格。 publication.price_record.low_price
和publication.price_record.high_price
是我的产品的价格。如果产品在销售中,则必须为high_price != 0
,并且此值必须显示在HTML中。
CLP只是货币格式的另一个标签:
def toCLP(value):
if not value:
return value
return '$'+intcomma(int(value)).replace(',', '.')
如果high_price
不为零,则输出HTML没问题。例如:
<div class="price">
<span class="price-new">$75.990</span>
<span class="price-old">$83.990</span>
</div>
另一方面,如果high_price
为零,我的部分HTML将被删除:
<div class="price">$21.990</div>
请注意,span.price-new
和span.price-old
已被删除。
现在,如果删除hideifz
标记,前一个示例的输出如下所示:
<div class="price">
<span class="price-new">$21.990</span>
<span class="price-old">0.0</span>
</div>
当我删除hideifz
标记时,跨度回来了。
我只是想隐藏html中的python变量/值,保留外部span用于其他用途。
我知道我可以通过简单地使用{% if val %}
标签来解决这个问题,但我想创建一个简单的标签。
我正在使用django 1.10。
谢谢你。