делает веб-приложение, имеет 'elseif' или 'elif' в тегах шаблона

мой код:Здравствуйте! ~~~

{% 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'

не веб-приложение еще имеет 'если'?

спасибо

10
задан Adam Crossland 1 June 2010 в 01:51
поделиться

2 ответа

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 .

16
ответ дан 3 December 2019 в 14:43
поделиться

Обновление : как Джефф Бауэр говорит в комментарии ниже , Django 1.4 предоставляет тег elif .

Исходный ответ выглядит следующим образом:


Книга Django говорит следующее:

Нет тега {% elif%} . Используйте вложенные теги {% if%} , чтобы добиться того же:

Итак, вы должны сделать

if
else
  if
  else

, чтобы получить if-elsif-else.

Это отражено в их Философии дизайна :

Цель не в том, чтобы изобрести язык программирования. Цель состоит в том, чтобы предложить достаточно функциональных возможностей программирования, таких как ветвление и цикл, которые необходимы для принятия решений, связанных с презентацией.

16
ответ дан 3 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: