0

在我的模板中,我有

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" }},但是这如何适用于 Quote 的第二种情况?因为默认版本也应该隐藏$. 否则它会说$No quote yet.。嗯......也许有一种方法可以使用humanize带有 $ 符号的 Django 框架?

4

2 回答 2

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

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

于 2012-03-27T22:24:42.793 回答
0

您已经以正确的方式进行操作。

于 2012-03-27T22:10:31.743 回答