-1
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>
4

1 回答 1

0

html 模板中的 {% endfor %} 为时过早;它必须是所有 q.xxx 值之后。d'oh

很抱歉浪费了别人的时间。

于 2012-07-05T11:08:48.873 回答