从刚刚创建的Model实例中检索数字ID

时间:2013-01-16 20:06:56

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

来自Google文档:

“模型实例的键包括实例的实体类型以及唯一标识符。标识符可以是键名称字符串,由应用程序在创建实例时显式指定,或者是由App自动分配的整数数字ID。将实例写入(放入)数据存储区时引擎。“

所以在示例中:

name = "John"
idd = 11
person = Person(name, idd)
person.put()

我如何获得“由App Engine自动分配的整数数字ID?”

2 个答案:

答案 0 :(得分:2)

如果您正在使用ndb put()返回新密钥...请在密钥上调用id函数:

name = "John"
idd = 11
person = Person(name, idd)
new_key = person.put()
auto_assigned_id = new_key.id()

来自https://developers.google.com/appengine/docs/python/ndb/entities

  

要将对象存储为数据存储区中的持久性实体,请使用   put()方法。这将返回一个用于从中检索实体的密钥   稍后数据存储:

     

sandy_key = sandy.put()

https://developers.google.com/appengine/docs/python/ndb/keyclass#Key_id

答案 1 :(得分:1)

你试过

吗?
print person.id()

或者如果您提供了唯一标识符

print person.id_or_name()

put()方法也返回键

key = person.put()