Google App Engine - 更新实体

时间:2013-08-18 18:06:10

标签: python google-app-engine entity google-cloud-datastore

我正在使用Google App Engine 1.8.3 - Python 2.7和NDB API作为我的数据存储区

假设我有一个显示在html表上的组实体列表。 我想点击单个组的名称来编辑组的信息。 该组的密钥/ ID应该是什么,我应该使用哪一个?请看下面的

这是我的模特:

class Group(ndb.Model):
    name = ndb.StringProperty()
    description = ndb.StringProperty()

在我的HTML中:

......
{% for group in groups %}
    <tr>
       <td>
        <a href="/editGroup?id={{ ????????????? }}" {{ group.name}} </a>
       </td>
       <td>
        {{ group.description}}
       </td>
    </tr>
{% endfor %}
......

在?????在<a>标签内,我应该放什么?我该怎么把它传回服务器? group.key? group.key.id()?或者我必须将属性添加到组模型作为关键属性,如groupId = ndb.IntegerProperty()

我正在考虑使用实体的密钥,但我无法找到一种方法来显示来自'group'的html中的密钥,例如group.something_to_get_the_key()

我可以使用group.key.id()获取数字ID,但根据https://developers.google.com/appengine/docs/python/ndb/entities#numeric_keys 数字ID可能不是唯一的。

由于

1 个答案:

答案 0 :(得分:2)

在NDB中,密钥具有urlsafe()方法,该方法生成适合在模板中使用并传递给URL的字符串:

{{ group.key.urlsafe }}

这已记录在您已链接到的同一页面上。