我对get_or_insert(..)
感到困惑。我应该以{{1}}传递什么?请考虑以下示例:
key_name
假设没有两个人可以拥有相同的名字。假设我想获取或插入名为class Person(db.model)
name = db.StringProperty(required=True)
的新Person
,我的Peter
语句会是什么样的?
干杯,
皮特
答案 0 :(得分: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")
答案 1 :(得分:1)
您可以将key_name
视为主键。查看get_or_insert(...)
的文档,有一个后端代码的示例。
如果name是唯一字段,您可能也希望将其用作键名。虽然我建议剥离空格并使情况正常化。