这是使用Web应用程序框架,而不是Django。
以下模板代码为我提供了一个 TemplateSyntaxError:',当我尝试渲染字典时,'五个单词的语句应以'reverse'错误结束。我不明白是什么导致了这个错误。有人可以为我解释一下吗?
{% for code, name in charts.items %}
<option value="{{code}}">{{name}}</option>
{% endfor %}
我正在使用以下内容进行渲染:
class GenerateChart(basewebview):
def get(self):
values = {"datepicker":True}
values["charts"] = {"p3": "3D Pie Chart", "p": "Segmented Pied Chart"}
self.render_page("generatechart.html", values)
class basewebview(webapp.RequestHandler):
''' Base class for all webapp.RequestHandler type classes '''
def render_page(self, filename, template_values=dict()):
filename = "%s/%s" % (_template_dir, filename)
path = os.path.join(os.path.dirname(__file__), filename)
self.response.out.write(template.render(path, template_values))
答案 0 :(得分:13)
这是使用网络应用框架, 不是Django。
但框架除外,你必须使用Django的模板 - 显然是旧版本,它不支持for
的“自动解包”样式 - 可能是0.96版本的App Engine的默认值。要使用更现代的Django的任何部分(包括“只是模板”),你必须有一个settings.py
文件并执行:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')
根据the docs。之后你可以from django import template
,你将使用1.1版本的Django模板引擎。