我对if语句有疑问,需要一些帮助。这是html中的简短代码段:
{% for category in categories %}
{% if category == 'christmas' %}
<p>{{category}} 1</p>
{% else %}
<p>{{category}} 2</p>
{% endif %}
{% endfor %}
通过for循环,我遍历ca tegories and check them with an if-statement中的字符串“ christmas”。该段始终是第二段,以2结尾。不过,似乎出现了名称为“圣诞节”的类别。这意味着,在if语句中的“类别”与在p标签中的不同。实际上,if语句中的类别为空。
为什么?有人可以帮忙吗?谢谢!
编辑:添加了两张图片。在右侧,您将看到输出:
答案 0 :(得分:2)
我猜您正在从模型中遍历类别对象,这意味着categories
不是字符串列表,而是查询集?在这种情况下,您应该执行以下操作:
{% for category in categories %}
{% if category.name == 'christmas' %}
<p>{{category}} 1</p>
{% else %}
<p>{{category}} 2</p>
{% endif %}
{% endfor %}
用正确的属性替换.name
。
由于您的{{category}}
或__unicode__
方法,您的__str__
可能正确显示。