如何解决带有if语句的Google App Engine上的Django模板
| 我是google app引擎的新手,刚读完入门。因此,我开始在GAE上实现一个简单的应用程序,不久,当我简单地呈现一个使用if语句的html时,出现一个错误,提示“ \ TemplateSyntaxError,\” \'if \'语句格式不正确\“ \”。我改用ifequal语句解决了它的问题,但是本教程向我展示了如何在index.html(http://code.google.com/appengine/docs/python/gettingstarted/templates.html)中使用if语句 我是否会错过模板中使用if语句的任何内容? 谢谢, 柳 更新: 这是错误的详细信息。我认为Chris的答案将允许我使用\“ Smart \”(如果标记)。我将尝试尽快将Django版本更新为1.2。Traceback (most recent call last):
File \"C:\\Program Files\\Google\\google_appengine\\google\\appengine\\ext\\webapp\\__init__.py\",line 634,in __call__
handler.get(*groups)
File \"C:\\Store house\\gae\\community\\src\\community.py\",line 24,in get
self.response.out.write(template.render(path,template_values))
File \"C:\\Program Files\\Google\\google_appengine\\google\\appengine\\ext\\webapp\\template.py\",line 72,in render
t = load(template_path,debug)
File \"C:\\Program Files\\Google\\google_appengine\\google\\appengine\\ext\\webapp\\template.py\",line 100,in load
template = django.template.loader.get_template(file_name)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\loader.py\",line 80,in get_template
template = get_template_from_string(source,origin,template_name)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\loader.py\",line 88,in get_template_from_string
return Template(source,name)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\__init__.py\",line 158,in __init__
self.nodelist = compile_string(template_string,origin)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\__init__.py\",line 174,in compile_string
return parser.parse()
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\__init__.py\",line 273,in parse
compiled_result = compile_func(self,token)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\loader_tags.py\",line 154,in do_extends
nodelist = parser.parse()
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\__init__.py\",line 132,in do_block
nodelist = parser.parse((\'endblock\',\'endblock %s\' % block_name))
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\__init__.py\",token)
File \"C:\\Program Files\\Google\\google_appengine\\lib\\django_0_96\\django\\template\\defaulttags.py\",line 655,in do_if
raise TemplateSyntaxError,\"\'if\' statement improperly formatted\"
TemplateSyntaxError: \'if\' statement improperly formatted
更新2:
根据这篇文章(http://code.google.com/appengine/docs/python/tools/libraries.html#Django),当前的Google App引擎已经包含Django 1.2,但当前的默认版本是0.96,即为什么我不能使用if标记。要使用1.2版,请按照上面的链接中的说明进行操作。现在,我可以使用\“ Smart \” if标签。谢谢大家 :)
解决方法
如果您尝试使用标签:
{% if x == 1 %}
并且您得到了解决的错误
{% ifequal x 1 %}
这表示您的Django版本为1.1或更低。如果标签是1.2版随附的,则为“智能”
编辑添加,Django 1.2及更高版本可以在GAE上运行。如果您确实在运行旧版本的Django,请参阅此博客文章,以了解如何进行设置。
,确保您完全遵循django模板化的语法。确保将您的if放在{% %}
内。还应确保您在{%
,%}
和for
之间留有空格。
要了解更多信息,请遍历此Django模板
{% if var1 %}
{{ var1|safe }}
{% endif %}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。