Google App Engine-数据存储区get_or_insert key_name混淆
问题内容:
我感到困惑get_or_insert(..)
。我应该通过什么key_name
?考虑以下示例:
class Person(db.model)
name = db.StringProperty(required=True)
假设没有两个人可以使用相同的名字。假设我要获取或插入一个新Person
的name Peter
,我的get_or_insert
声明会是什么样?
干杯,
皮特
问题答案:
这里可能令人困惑的是,键没有直接显示在模型声明中,因此name = db.StringProperty
不需要示例中的位。get_or_insert
将键名作为其第一个(必需)参数,因此您正在寻找类似以下的代码:
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")