Почему это простое заявление django IF не работает? - PullRequest
0 голосов
/ 04 августа 2011

Если я выведу следующее в шаблоне:

{{ latest_session.chat_room.is_open }}

выводит

True

Но когда я делаю эту проверку:

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

Это выводит:

Offline

Разве он не должен выводить онлайн?

Ответы [ 3 ]

9 голосов
/ 04 августа 2011

is_open, вероятно, BooleanField, поэтому его значение python является логическим значением, а не строкой. Используйте {% if latest_session.chat_room.is_open %}, чтобы проверить это.

3 голосов
/ 04 августа 2011

True - логическое значение, а не строка.Вместо этого используйте {% if latest_session.chat_room.is_open %}.

0 голосов
/ 04 августа 2011

Согласно Книге Джанго ,

Тег {% if%} оценивает переменную, и если эта переменная имеет значение «Истина» (то есть существуетне пустое и не является ложным логическим значением), система отобразит все между {% if%} и {% endif%}.

Следовательно, вы не можете выполнять сравнения внутри {%теги if%}Поскольку is_open, вероятно, возвращает логическое значение, используйте вместо этого следующее:

{% if latest_session.chat_room.is_open %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...