我的模板中有以下代码,该代码应将watchinstance.shift
的值(可以是“ DAY”或“ NIGHT”)与文字字符串“ DAY”进行比较。比较总是失败。
{% for watchinstance in watchinstance_list %}
{% if watchinstance.shift == "DAY" %}
<p>shift is DAY</p>
{% endif %}
{% endfor %}
使用
ifequal
也不起作用:{% for watchinstance in watchinstance_list %}
{% ifequal watchinstance.shift "DAY" %}
<p>shift is DAY</p>
{% endifequal %}
{% endfor %}
但是,仅调用
{{ watchinstance.shift }}
即可按预期工作:{% for watchinstance in watchinstance_list %}
{{ watchinstance.shift }}
{% endfor %}
返回DAYS和NIGHTS。
我检查了
watchinstance.shift
是否返回了任何多余的字符,但看起来却不一样……在这里我还能缺少什么? 最佳答案
几种可能性:
.shift字符串具有额外的空格。使用它来仔细检查:
{% for watchinstance in watchinstance_list %}
X{{ watchinstance.shift }}X
{% endfor %}
.shift属性不是字符串,而是字符串化为“ DAY”或“ NIGHT”的对象。在这种情况下,
{{ watchinstance.shift }}
中的变量替换看起来与字符串相同,但是{% ifequal watchinstance.shift "DAY" %}
中的比较将失败。