Google App Engine - 数据存储区get_or_insert key_name混淆

5 python database google-app-engine key

我很困惑get_or_insert(..).我应该通过什么key_name?请考虑以下示例:

class Person(db.model)
    name = db.StringProperty(required=True)
Run Code Online (Sandbox Code Playgroud)

假设没有两个人可以拥有相同的名字.假设我想获取或插入一个新Person的名称Peter,我的get_or_insert陈述会是什么样的?

干杯,

皮特

bgp*_*ter 5

这里可能令人困惑的是,键不会直接显示在模型声明中,因此name = db.StringProperty不需要示例中的位.get_or_insert将keyname作为其第一个(必需的)参数,因此您需要查找以下代码:

person = Person.get_or_insert('Peter')
# other interesting & useful code here...
# later, maybe we need to retrieve that key name from the object:
name = person.key().name()
assert(name == "Peter")
Run Code Online (Sandbox Code Playgroud)