4

有谁知道如何在 Django 模板中执行数学函数?我想从另一个数字中减去一个数字。

{% for person in persons %}
<tr>
    <td>{{ person.birthday|date:"jS M" }}</td>
    <td>{{ person.name }}</td>
    <td>Minus this {% now "Y" %} from this {{ person.birthday|date:"Y" }}</td>
    <td>{{ person.address }}</td>
</tr>
{% endfor %}
</table>

谢谢!

4

2 回答 2

2

不要尝试在模板中执行此操作。在模型中定义一个方法Person,或者编写一个自定义模板过滤器。

于 2013-04-28T20:21:38.817 回答
1

我认为timesince过滤器可能会做任何想做的事。

{% with now as today %}
{{ person.birthday|timesince:today }}
{% endwith %}

但是,您应该强烈考虑仅将计算值作为Person模型上的一种方法。Django 模板语言在这些事情上的弱点是有原因的(这是一个很好的原因,恕我直言)。在你的模型上保留这样的逻辑,或者在你的视图中计算并作为上下文变量传递,几乎总是一个更好的主意。

最后,如果您真正想做的是操作整数,您总是可以使用文档来完成创建自己的模板标签或过滤器的相当简单的任务。同样,通常通过上下文或对象简单地传递数据是更好的行动方案。

于 2013-04-28T20:38:44.980 回答