无法分析模板中Django If/else语句中的剩余部分
我有几个if/else语句,不管页面上存在什么页面或其他内容,它们似乎都返回相同的解析错误 不管出于什么目的,我都把它弄得哑口无言。我的实际逻辑是有道理的,不用担心,我只想知道是什么语法导致了这个问题:无法分析模板中Django If/else语句中的剩余部分,django,python-3.6,django-3.2,Django,Python 3.6,Django 3.2,我有几个if/else语句,不管页面上存在什么页面或其他内容,它们似乎都返回相同的解析错误 不管出于什么目的,我都把它弄得哑口无言。我的实际逻辑是有道理的,不用担心,我只想知道是什么语法导致了这个问题: <div> {% if True and 10 - 1 > 5 %} <p>1</p> {% else %} <p>2</p> {% endif %} </div>
<div>
{% if True and 10 - 1 > 5 %}
<p>1</p>
{% else %}
<p>2</p>
{% endif %}
</div>
{如果为真且10-1>5%}
一,
{%else%}
二,
{%endif%}
当我执行上述操作时,我希望它显示
1
标记,但返回一个“TemplateSyntaxError at”URL,无法解析余数:“-”from“-”。默认情况下,django templates不允许进行数学运算,例如加法
,减法
,等等
我建议在视图函数中进行数学运算,并将其呈现给模板,然后直接使用它
例如:
然后在模板中,您可以执行以下操作
{% if True and my_result > 5 %}
{如果为真,则为%10 |加上:'-1'>5%}
一,
{%else%}
二,
{%endif%}
代码
10添加:'-1'
表示10+(-1)so,这基本上是因为你不能像普通的python if块那样使用模板if块。而且因为你在它里面执行一些数学运算..它不能解析-
减号,不管是html还是什么..所以要做这些加法和减法..djnago有模板标签…你可能应该使用thoseI我明白这是什么被认为是最佳实践,是“正确”的答案。谢谢你的背景资料。我的用例,虽然没有添加到上面,但在我的控制器中通过我无权访问的数据进行迭代,为所述数据的每次检查注入一个true或false。事实上,下面的内容对我帮助更大,但考虑到我提出的问题,我承认这是首选。如果可以,我会投票,但声誉不够。这是我发现的最有帮助的方法,也是我最终如何解决问题的方法,但我承认这是最令人讨厌的方法。无论如何,我想谢谢你。
{% if True and my_result > 5 %}
<div>
{% if True and 10|add:'-1' > 5 %}
<p>1</p>
{% else %}
<p>2</p>
{% endif %}
</div>