Django - 模板中的复杂计算

时间:2016-07-05 20:06:43

标签: django django-templates

据我所知,模板中没有办法包括django变量,例如

<td>{{variable_1}} + {{variable_2}}</td>

人们建议在视图中进行计算,但我担心的是我们应该只使用服务器端将数据从服务器传输到客户端 - 这就是它。所有计算都应使用客户端计算机电源完成。另一个选项可能是在页面加载后在javascript中进行计算,尤其是jquery,但缺点是在计算非常复杂的情况下,数据会以滞后的方式呈现。这里最好的做法是什么,最平衡的解决方案是什么?

1 个答案:

答案 0 :(得分:2)

django-mathfilters仅为此目的提供了一系列模板标记。安装后,您将能够通过过滤器标签在模板中执行有限的计算。来自文档:

{% load mathfilters %}

<h1>Basic math filters</h1>

<ul>
    <li>8 + 3 = {{ 8|add:3 }}</li>

    <li>13 - 17 = {{ 13|sub:17 }}</li>

    {% with answer=42 %}
    <li>42 * 0.5 = {{ answer|mul:0.5 }}</li>
    {% endwith %}

    {% with numerator=12 denominator=3 %}
    <li>12 / 3 = {{ numerator|div:denominator }}</li>
    {% endwith %}

    <li>|-13| = {{ -13|abs }}</li>
</ul>

如果您需要更多功能,您可以轻松地make your own tags执行任何所需的计算。