GAE/Django 模板错误
Posted
技术标签:
【中文标题】GAE/Django 模板错误【英文标题】:GAE/Django TemplateError 【发布时间】:2011-08-28 14:13:17 【问题描述】:我有一个使用 Django 模板的谷歌应用引擎应用。我正在尝试这样做:
% if person.age >= 4 %
<p style="color:White">Hello</p>
% else %
<p style="color:Black">Hello</p>
% endif %
这不起作用,我得到:“TemplateSyntaxError:'if' 语句格式不正确”。同时(因为有些值是无)这确实有效:
% if person.age %
<p style="color:White">Hello</p>
% else %
<p style="color:Black">Hello</p>
% endif %
我不明白为什么第一个示例不起作用,这是指向 Django Templates 的链接我想我已经足够接近运算符示例了,除了这是一个属性而不是变量这一事实
【问题讨论】:
【参考方案1】:你使用的是哪个 Django 版本?
App Engine 上的默认版本是 0.96,直到 1.2 才支持 >=
运算符。
您可以通过在任何与模板相关的导入上方添加以下内容来切换到 1.2:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.2')
【讨论】:
我想从技术上讲,我正在使用 Google 的 webapp 框架,据我所知,它使用 Django 模板。我到处都在使用 Django 模板,它们运行良好。这是我使用运算符的第一个地方。您添加库导入的灵魂得到了它。谢谢。【参考方案2】:如果 person.age 和 person.age >= 4 则执行
这样,如果 person.age 为 None,它将失败第一次检查,并且不会在第二次检查中抛出语法错误。
【讨论】:
【参考方案3】:正如你所说,因为有些值是无的,它会抛出语法错误。更好的是,您可以检查 person.age 的存在,然后像这样进行检查。
% if person.age and person.age >= 4 %
<p style="color:White">Hello</p>
% else %
<p style="color:Black">Hello</p>
% endif %
【讨论】:
以上是关于GAE/Django 模板错误的主要内容,如果未能解决你的问题,请参考以下文章
GAE/Django 模板 (0.96) 过滤器以获取 GqlQuery 的长度并对其进行过滤
无法创建自定义管理模板 url,出现错误模板错误和创建自定义管理站点错误
AWS cloudformation 错误:模板验证错误:模板错误:资源 NotificationsTopic 不支持 Fn::GetAtt 中的属性类型 Arn