2012-03-27 37 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

你已經在以正確的方式做它。

相關問題