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 は正しくて適切ですか、それとも変数 "result" の値を template_values に含める必要がありますか?
jinja2 テンプレートで使用したのと同じ種類の "for" ループを Python コードで使用して、qs に QA の 2 つのインスタンスがあることを示すこの追加のデバッグ コードを追加しましたが、エラーは解決しません。
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>