2012-03-27 5 views
0

, 나는 아마 {{ value|default:"nothing" }}으로 더 간단 버전을 할 수있는 알고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 /> 

을 가지고 있지만 어떻게 견적과 2의 경우에 적용되는 것? 기본 버전은 $도 숨겨야하기 때문입니다. 그렇지 않으면 $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

당신은 이미 올바른 방법으로하고 있습니다.

관련 문제