class TablePage(BaseHandler):
def get(self):
ID_id = self.request.get('ID')
key = db.Key.from_path("PQ", ID_id)
p = PQ.get(key)
qs = db.Query(QA)
qs.ancestor(p)
result = qs.get()
template_values = {'qs': qs,
'p': p
}
self.render_template('table.html', template_values )
我问这个问题是因为我试图将查询到的记录放入一个 html 表中。我的 template_values 是否正确且足够,或者我是否还必须以某种方式在 template_values 中包含变量“结果”的值?
在我的 python 代码中使用与我在 jinja2 模板中使用的相同类型的“for”循环,我添加了这个额外的调试代码,它显示 qs 中有两个 QA 实例,但错误仍然存在。
for q in qs:
answers = q.answers
logging.info("answers %s" % answers )
INFO 2012-07-05 09:23:03,853 views.py:84] answers [0L, 0L, 0L]
INFO 2012-07-05 09:23:03,853 views.py:84] answers [0L, 0L, 0L]
我正在尝试这个,但 jinja2 模板似乎没有正确获取信息。例如,我有以下模板代码,它会产生错误“UndefinedError: 'q' is undefined”
<tbody>
{% for q in qs %}
<tr>
<td> {{ q.seqnum }} </td>
<td> {{ q.question }} </td>
{% for answer in q.answers %}
<td> {{ answer }} </td>
{% endfor %}
<td> {{ q.answers|sum() }} </td>
{% endfor %}
<td>{{ q.date }}</td>
<td>{{ q.modified }}</td>
</tr>
</tbody>