为什么这个简单的django IF语句不起作用?

时间:2011-08-04 18:02:35

标签: python django

如果我在模板中输出以下内容:

{{ latest_session.chat_room.is_open }}

输出

True

但是当我这样做时检查:

{% if latest_session.chat_room.is_open == 'True' %}
   Online
{% else %}
   Offline
{% endif %}

输出:

Offline

不应该在线输出吗?

3 个答案:

答案 0 :(得分:9)

is_open可能是BooleanField,因此它的python值是布尔值,而不是字符串。使用{% if latest_session.chat_room.is_open %}进行检查。

答案 1 :(得分:3)

True是一个布尔值,而不是一个字符串。请改用{% if latest_session.chat_room.is_open %}

答案 2 :(得分:0)

根据Django Book

  

{%if%}标记评估变量,如果该变量为“True”   (即,它存在,不是空的,并且不是错误的布尔值),.   系统将显示{%if%}和{%endif%}之间的所有内容。

因此,您无法在{%if%}标记内进行比较。但是,由于is_open可能返回一个布尔值,所以请改用以下内容。

{% if latest_session.chat_room.is_open %}