开发者

does webapp has 'elseif' or 'elif' in template tags

开发者 https://www.devze.com 2023-01-01 23:17 出处:网络
my code is : Hello!~~~ {% if user %} <p>Logged in as {{ user.first_name }} {{ user.last_name }}.</p>

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/

0

精彩评论

暂无评论...
验证码 换一张
取 消