2010-06-01 20 views
10

我的代碼是: 喂~~~沒有Web應用程序在模板標籤 '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' 

不web應用程序具有「否則如果'?

感謝

+1

這是禮讓給予好評單擊向上箭頭,答案是對你有幫助。 – bernie 2010-06-01 01:47:59

+1

您已經是該網站的會員,爲期5個月,共有6個upvotes和5個downvotes。 – bernie 2010-06-01 01:50:29

+2

三個標籤中的兩個拼錯。 – 2010-06-01 01:52:11

回答

16

webapp本身沒有模板,但你可以使用Django模板 - 默認,那些早在Django 0.96(你從古老的文檔我指着看,需要嵌套if是身體嵌套在else塊內)。您可以通過使用

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

from google.appengine.dist import use_library 
use_library('django', '1.1') 

開始Python代碼使用Django(見here有詳細介紹)的更多更新的版本,但同時這也給你的真實大大在許多方面改進了模板語言,這些改進做包括一個elseifelif標記 - 你仍然必須明確嵌套在第一個else分支的第二個if

+1

現在支持'elif'。請參閱:https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#if – Nosh 2017-03-07 10:39:38

13

更新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

的目標不是要發明一種編程語言。目標是提供足夠的編程風格功能,如分支和循環,這對於制定與演示相關的決策至關重要。

+0

有趣。我一直認爲GAE有完整的Jinja2模板支持。 – 2012-05-03 09:54:18

+2

從Django 1.4開始,模板現在支持elif標籤:https://docs.djangoproject.com/zh/dev/releases/1.4/#minor-features – 2012-08-01 17:58:51

+0

已更新。謝謝@Jeff。 – 2012-08-02 14:27:56

相關問題