【问题标题】:does webapp has 'elseif' or 'elif' in template tagswebapp在模板标签中有'elseif'或'elif'吗
【发布时间】:2010-06-01 01:29:51
【问题描述】:

我的代码是: 你好!~~~

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

谢谢

【问题讨论】:

  • 点赞是礼貌的——点击向上的箭头——对你有帮助的答案。
  • 您已成为该网站的会员 5 个月,总共获得 6 次赞成票和 5 次反对票。
  • 三个标签中有两个拼写错误。
  • @Adam: zjm1126 是懒惰和马虎。不要除了他的礼貌行为。

标签: python google-app-engine if-statement


【解决方案1】:

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

webapp 本身没有模板,但您可以使用 Django 模板 - 默认情况下,那些来自 Django 0.96 的模板(正如您从我指出的古代文档中看到的那样,这需要嵌套的if 物理嵌套在else 块内)。您可以使用更新的 Django 版本(请参阅here 了解更多详细信息),方法是使用

开始您的 Python 代码
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

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

虽然这确实为您提供了一种在许多方面都得到极大改进的模板语言,但这些改进包括elseifelif 标记——你仍然 > 必须将辅助 if 显式嵌套在主要的 else 分支内。

【讨论】:

【解决方案3】:

还有两个 Django Snippets 可以在模板语言中启用“elif”标签

http://djangosnippets.org/snippets/1572/

http://djangosnippets.org/snippets/2243/

【讨论】:

  • 如何使用它。我的意思是我们应该复制代码 sn-p 并将其保存在 templatetags 文件夹中的文件中。进而 ??你能解释一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 2014-03-20
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
相关资源
最近更新 更多