3

我有一个模板,它显示每条消息的成本,目前它在 html 中显示为:

(每条消息 0.048p)

但是,我希望输出为(每个文本 4.8p)。

我尝试过|floatformat 等,但它要么向上取整,即5p,要么不起作用。

在我的模板中:

 <span class="term">({{ "Micro"|unit_cost:100 }}p per message)</span>

模板标签功能:

def unit_cost(value, arg):
    credit_object = CreditCalculator(arg)
    unit_cost = credit_object.get_unit_cost()
    return unit_cost

更新:我想在模板中执行此操作,而不是更改在其他地方使用的函数。即我想做类似的事情:({{ "Micro"|unit_cost:100|floatformat }}

4

2 回答 2

4

模板标签只是在模板中使用 Python 的一种方式。一种可能的方法是将 unit_cost 包装在另一个函数中,使其不受影响。这只是一种方式,即

在您的标签中:

def multiply_cost(value):
    return value*100

register.filter('multiply_cost', multiply_cost)

然后:

({{ "Micro"|unit_cost:100|multiply_cost }}p per message)

这将给出: value as xx as required。您可以对此进行扩展,例如传入乘以 arg 等,但要明白这一点:)

于 2013-06-14T12:53:16.320 回答
1

只需将值乘以 100:

def unit_cost(value, arg):
     # ...
     return unit_cost*100
于 2013-06-14T12:30:11.083 回答