Python 为什么';这个简单的django IF语句行吗?
如果我在模板中输出以下内容:Python 为什么';这个简单的django IF语句行吗?,python,django,Python,Django,如果我在模板中输出以下内容: {{ latest_session.chat_room.is_open }} 它输出 True 但当我做这个检查时: {% if latest_session.chat_room.is_open == 'True' %} Online {% else %} Offline {% endif %} 它输出: Offline 它不应该在线输出吗?是开放的可能是一个布尔字段,因此它的python值是布尔值,而不是字符串。使用{%if last_sess
{{ latest_session.chat_room.is_open }}
它输出
True
但当我做这个检查时:
{% if latest_session.chat_room.is_open == 'True' %}
Online
{% else %}
Offline
{% endif %}
它输出:
Offline
它不应该在线输出吗?
是开放的
可能是一个布尔字段
,因此它的python值是布尔值,而不是字符串。使用{%if last_session.chat_room.is_open%}
检查它。True
是布尔值,而不是字符串。使用{%if last_session.chat_room.is_open%}
。根据
{%if%}标记计算一个变量,如果该变量为“True”
(即,它存在、不为空且不是假布尔值)
系统将显示{%if%}和{%endif%}之间的所有内容
因此,您不能在{%if%}标记内进行比较。由于是打开的
可能返回一个布尔值,因此请使用以下内容
{% if latest_session.chat_room.is_open %}
是的,你是对的,这就解决了。奇怪的是,自动生成的文档没有提到它是布尔值,但对其他字段却提到了。但请注意,您知道它是布尔值而不是文本字段,如果它是带有“false”的文本字段,那么{%if latest_session.chat_room.is_open%}从Django 1.2开始计算为true非true: