my code is : Hello!~~~
{% 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 h开发者_开发百科ref="/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 %}
the error is :
TemplateSyntaxError: Invalid block tag: 'elif'
does not webapp has a 'else if ' ?
thanks
Update: as Jeff Bauer says in a comment below, Django 1.4 provides an elif
tag.
Original answer as follows:
The Django Book has this to say:
There is no
{% elif %}
tag. Use nested{% if %}
tags to accomplish the same thing:
So, you have to do
if
else
if
else
to achieve an if-elsif-else.
This is reflected in their Design Philosophies:
The goal is not to invent a programming language. The goal is to offer just enough programming-esque functionality, such as branching and looping, that is essential for making presentation-related decisions.
webapp
per se has no templates, but you can use Django templates - by default, those from back in Django 0.96 (as you see from the ancient docs I pointed to, that requires the nested if
to be physically nested inside the else
block). You can use a more updated version of Django (see here for more details) by starting your Python code with
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')
but while this does give you a template language that's vastly improved in many ways, those improvements do not include an elseif
or elif
tag -- you still have to explicitly nest the secondary if
inside the primary one's else
branch.
There are also two Django Snippets that enable the 'elif' tag in the template language
http://djangosnippets.org/snippets/1572/
http://djangosnippets.org/snippets/2243/
精彩评论