【发布时间】:2011-02-15 17:43:51
【问题描述】:
在 Google App Engine 中使用 Django 模板(在 Python 上),是否可以将模板变量与 {% if %} 块中的整数进行比较?
views.py:
class MyHandler(webapp.RequestHandler):
def get(self):
foo_list = db.GqlQuery(...)
...
template_values['foos'] = foo_list
template_values['foo_count'] = len(foo_list)
handler.response.out.write(template.render(...))
我的模板:
{% if foo_count == 1 %}
There is one foo.
{% endif %}
'if' statement improperly formatted 爆了。
我试图在我的模板中做的是构建一个简单的 if/elif/else 树,以便在语法上正确以便能够声明
#foo_count == 0:
There are no foos.
#foo_count == 1:
There is one foo.
#else:
There are {{ foos|length }} foos.
浏览 Django 模板文档(this link 提供的in the GAE documentation 似乎适用于比 GAE 支持的版本更新得多的 Django 版本),似乎我只能实际使用布尔运算符(如果实际上是布尔运算符在这个旧版本的 Django 中支持)带有字符串或其他模板变量。
难道不能用 Django 模板将变量与整数或非字符串进行比较吗?
我确信有一种简单的方法可以解决这个问题 - 在 Python 端而不是在模板中构建消息字符串 - 但这似乎是一个您应该能够在模板中处理的简单操作。
听起来我应该切换到更高级的模板引擎,但由于我是 Django 的新手(模板或它的任何部分),我只想先确认一下。
【问题讨论】:
-
webapp模板系统来自Django 0.96;文档位于djangoproject.com/documentation/0.96 App Engine 上提供了较新版本的 Django,但在使用 webapp 而不是整个 django 框架时加载它们可能会很棘手。
标签: python google-app-engine django-templates