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 才支持 &gt;= 运算符。

您可以通过在任何与模板相关的导入上方添加以下内容来切换到 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 的长度并对其进行过滤

GAE Django cloudsql 套接字

无法创建自定义管理模板 url,出现错误模板错误和创建自定义管理站点错误

AWS cloudformation 错误:模板验证错误:模板错误:资源 NotificationsTopic 不支持 Fn::GetAtt 中的属性类型 Arn

使用SIAM LaTeX模板时出现的错误

如果仅在模板中立即给出错误输入,如何在 Django 模板中显示表单错误?