2012-03-27 4 views
0

、私はおそらく{{ value|default:"nothing" }}でsimplierバージョンを行うことができます知っている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 /> 

を持っていますが、どのようにそれを引用して第二の場合に適用されますでしょうか?デフォルトのバージョンでは$も隠す必要があるためです。それ以外の場合は$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

あなたはすでに正しい方法でやっています。

関連する問題