2013-04-28 67 views
4

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

{% 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> 

谢谢!

+2

http://stackoverflow.com/questions/9948095/variable-subtraction-in-django-templates – ndpu 2013-04-28 20:07:53

回答

2

不要尝试在模板中执行此操作。您可以在Person模型中定义方法,也可以编写自定义模板过滤器。

1

我认为timesince过滤器可能会做什么想。

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

但是,你应该认真考虑只计算你的Person模型值的方法。由于某种原因,Django模板语言在这些类型的东西上很弱(一个好的,恕我直言)。在模型上保持这样的逻辑,或者在视图中计算并作为上下文变量传递,这几乎总是一个更好的主意。

最后,如果你真正想要做的是操纵整数,你总是可以使用the docs来完成创建自己的模板标记或过滤器的相当简单的任务。同样,通常只是通过上下文或对象传递数据是更好的行为方式。