我正在使用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)
我不知道有什么问题? 我甚至不知道这是否是继续...获取要删除的元素... 谢谢你的帮助
答案 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 %}