在 Jinja2 中执行算术运算

Smr*_*tha 5 python jinja2 flask

我想找到两个不同值之间的差异。但是,我收到一个Jinja2错误。我不确定如何在此模板中找到差异。

我尝试使用-运算符,但这不起作用。所以,我曾经sub找到实际分数和预测分数之间的差异。

 {% for e in question.essays %}
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">{{loop.index}}</h3>
        </div>
        <div class="panel-body">
            <div class="actual-score">Actual score: {% if e.actual_score %} {{e.actual_score|round(1)}}/5{% endif %}</div>
            <div class="predicted-score">Predicted score: {% if e.predicted_score %}{{e.predicted_score|round(1)}}/5{% endif %}</div>
            <p class="essay-text">Text: {{e.text}}</p>
        <div class="diff">Difference: {{ e.actual_score|sub(e.predicted_score)}} </div>

        </div>
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TemplateAssertionError: no filter named 'sub'
Run Code Online (Sandbox Code Playgroud)

小智 6

根据Jinja2 文档,使用-应该工作得很好。从我的角度来看,它也运行得很好。请注意发布使用操作员时收到的错误消息。sub我也无法在 Jinja2 的文档中找到该标签。

因此,正如你周围的奇妙事物所说,我认为这应该有效:

{{ e.actual_score - e.predicted_score }} 
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我发现的唯一一个执行类似算术运算的模板标签是Django 的 add 标签,它也不执行减法。