我的代码是: 您好!~~~
{% 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没有'else if'吗?
感谢
答案 0 :(得分:16)
webapp
本身没有模板,但您可以使用Django模板 - 默认情况下 ,Django 0.96后面的模板(正如您从古代文档中看到的那样) to,这要求嵌套的if
物理嵌套在else
块内。您可以使用
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')
虽然这确实为您提供了一种在很多方面得到极大改进的模板语言,但这些改进不包含elseif
或elif
标记 - 您仍然必须将辅助if
显式嵌套在主要else
分支内。
答案 1 :(得分:14)
更新:as Jeff Bauer says in a comment below,Django 1.4 provides an elif
tag。
原始答案如下:
The Django Book有这样的说法:
没有
{% elif %}
标记。使用嵌套的{% if %}
标记来完成同样的事情:
所以,你必须这样做
if
else
if
else
实现if-elsif-else。
这反映在他们的Design Philosophies:
中目标不是发明一种编程语言。目标是提供足够的编程式功能,例如分支和循环,这对于做出与演示相关的决策至关重要。
答案 2 :(得分:0)
还有两个Django Snippets在模板语言中启用'elif'标签