问题描述
我有几个 if/else 语句,无论页面上存在什么页面或其他内容,它们似乎都返回相同的解析错误。
出于所有意图和目的,它已经变得愚蠢了。我的实际逻辑是有道理的,别担心,我只是想知道我的语法是什么导致了这个问题:
<div>
{% if True and 10 - 1 > 5 %}
<p>1</p>
{% else %}
<p>2</p>
{% endif %}
</div>
当我执行上述操作时,我希望它显示 <p>1</p>
标记,但返回“TemplateSyntaxError at” URL,无法解析余数:'-' from '-'。
解决方法
默认情况下,django 模板不允许 addition
、subtraction
等数学运算。
我建议在你的视图函数中进行数学运算并渲染到模板中,然后直接使用 示例:
def my_view(request):
result = 10 - 1
render(request,template,context={'my_result': result})
然后在模板中你会做类似的事情
{% if True and my_result > 5 %}
,
<div>
{% if True and 10|add:'-1' > 5 %}
<p>1</p>
{% else %}
<p>2</p>
{% endif %}
</div>
代码 10|add:'-1'
表示 10 + (-1)