мой код:Здравствуйте! ~~~
{% if user %}
<p>Logged in as {{ user.first_name }} {{ user.last_name }}.</p>
{% elif openid_user%}
<p>Hello, {{openid_user.nickname}}! Do you want to <a href="{{openid_logout_url}}">Log out?</p>
{% else %}
<p><a href="/login?redirect={{ current_url }}">google Log in</a>.</p>
<p><a href="/twitter">twitter Log in</a>.</p>
<p><a href="/facebook">facebook Log in</a>.</p>
<p><a href="{{openid_login_url}}">openid Log in</a>.</p>
<iframe src="/_openid/login?continue=/"></iframe>
{% endif %}
ошибка:
TemplateSyntaxError: Invalid block tag: 'elif'
не веб-приложение еще имеет 'если'?
спасибо
webapp
сам по себе не имеет шаблонов, но вы можете использовать шаблоны Django - по умолчанию , те, что были в Django 0.96 ] (как вы видите из старых документов, на которые я указал, для этого требуется, чтобы вложенный if
был физически вложен в блок else
). Вы можете использовать более обновленную версию Django (см. здесь для получения дополнительной информации), начав свой код Python с
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')
, но хотя это дает вам язык шаблонов, который значительно улучшен во многих отношениях, эти улучшения действительно не включать тег elseif
или elif
- вы по-прежнему должны явно вложить вторичный , если
внутри основная ветвь else
.
Обновление : как Джефф Бауэр говорит в комментарии ниже , Django 1.4 предоставляет тег elif
.
Исходный ответ выглядит следующим образом:
Книга Django говорит следующее:
Нет тега
{% elif%}
. Используйте вложенные теги{% if%}
, чтобы добиться того же:
Итак, вы должны сделать
if
else
if
else
, чтобы получить if-elsif-else.
Это отражено в их Философии дизайна :
Цель не в том, чтобы изобрести язык программирования. Цель состоит в том, чтобы предложить достаточно функциональных возможностей программирования, таких как ветвление и цикл, которые необходимы для принятия решений, связанных с презентацией.