Google App Engine - 在模板HTML中打印GQL ID字段

时间:2012-06-18 19:14:45

标签: python google-app-engine templates gql

我正在使用App Engine生成与我的GQL表对应的HTML表。 每个HTML行将包含多个数据和GQL行ID。 HTML中的此ID允许我稍后删除该项目。

首先,我将数组提供给模板:

 userSearch = UserSearch.all()
 us = userSearch.fetch(1000)
 template_values = { 'userSearch' : us }
 path = os.path.join(os.path.dirname(__file__), 'template/index.html')
 self.response.out.write(template.render(path, template_values))

在模板中,我在HTML中打印ID:

{% for us in userSearch %}
    <tr>
        <td><a href="/delete?id={{ us.ID }}">delete</a></td>
        <td>...</td>
    </tr>
{% endfor %}

但是在HTML中,ID是空的,所以我无法删除我的项目:

class DeleteItem(webapp.RequestHandler):
    def get(self):
        id = int(self.request.get('id'))
        item = UserSearch.get_by_id(id)
        if item != None:
            db.delete(item)

我不知道有什么问题? 我甚至不知道这是否是继续...获取要删除的元素... 谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

假设1)你指的是内置的id()和2)你正在使用Django模板,你的模板语法应该是这样的:

{% for us in userSearch %}
    <tr>
        <td><a href="/delete?id={{ us.key.id }}">delete</a></td>
        <td>...</td>
    </tr>
{% endfor %}

如果您使用的是Jinja2模板,语法会略有不同:

{% for us in userSearch %}
    <tr>
        <td><a href="/delete?id={{ us.key().id() }}">delete</a></td>
        <td>...</td>
    </tr>
{% endfor %}