Python Google应用程序引擎-更新实体

Python Google应用程序引擎-更新实体,python,google-app-engine,entity,google-cloud-datastore,Python,Google App Engine,Entity,Google Cloud Datastore,我正在使用GoogleAppEngine1.8.3-Python2.7和NDBAPI作为我的数据存储 假设我有一个显示在html表上的组实体列表。 我想单击单个组的名称来编辑组的信息。 此组的密钥/id应该是什么,我应该使用哪一个?请看下面 这是我的模型: class Group(ndb.Model): name = ndb.StringProperty() description = ndb.StringProperty() 在我的html中: ...... {% for g

我正在使用GoogleAppEngine1.8.3-Python2.7和NDBAPI作为我的数据存储

假设我有一个显示在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 %}
......
。。。。。。
{组%中的组的%s}
数字ID可能不是唯一的


感谢NDB中的,键有一个
urlsafe()
方法,该方法生成适合在模板中使用的字符串并传递到URL:

{{ group.key.urlsafe }}

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

请注意,如果它是jinja2模板,则需要是group.key.urlsafe(),并带有括号。此外,可能值得考虑使用
url\u for()
而不是带有id的url路径。您将具有
编辑组(group\u id)
功能,用
@route('/editGroup/')
修饰,然后在模板中插入
{url\u for('edit\u group',group\u id=group.key.id())}
。它更灵活、更优雅,并且可以提供更好的路径语法。这是Flask,但我听说Django最近采用了这种路线方案。