【问题标题】:Subtracting 2 integers in Django Templates [duplicate]在 Django 模板中减去 2 个整数 [重复]
【发布时间】:2013-04-22 10:44:14
【问题描述】:

有人知道如何在 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>

谢谢!

【问题讨论】:

标签: python django


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      相关资源
      最近更新 更多