2012-03-27 39 views
0

在我的模板,我有在Django的模板中是否有更简单/更短的方式来过滤这种代码?

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 /> 

我知道我大概可以做一个simplier版本{{ value|default:"nothing" }},但如何将应用到与报价的第二种情况?因为默认版本也应该隐藏$。否则它会说$No quote yet.。嗯......也许有一种方法使用$符号的Django的humanize框架?

回答

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 '' 

这当然假定您将引号存储为整数而不是浮点数。对于非美国价值,也可能会引入一些本地化

0

你已经在以正确的方式做它。

相关问题