在我的模板中,我有
Vendor:
{% if order.vendor %}
{{ order.vendor.name }}
{% else %}
Not assigned yet.
{% endif %}<br />
Quote:
{% if order.quote %}
${{ order.quote }}
{% else %}
No quote yet.
{% endif %}<br />
我知道我可能会使用{{ value|default:"nothing" }}
做一个更简单的版本,但是如何适用于带引号的第二种情况?因为默认版本也应该隐藏$
。否则会说$No quote yet.
。嗯...也许有一种方法可以将Django的humanize
框架与$符号一起使用?
答案 0 :(得分:1)
这取决于您为order.quote存储值的方式,我可能会亲自使用自定义过滤器进行处理,并将其替换为{{ order.quote|currency|default:"No quote yet" }}
货币是定义的模板过滤器(大致),如:
import decimal
@register.filter
def currency(val):)
try:
return '$%s' % cents / decimal.Decimal(100.00)
except TypeError:
return ''
这当然假设您将引号存储为整数而不是浮点数。对于非美国价值观,也可能会引入一些本地化
答案 1 :(得分:0)
你已经以正确的方式做到了。