使用旧数据存储我已使用密钥。现在,我必须使用IDS(从NDB Cheat Sheet doc拍摄):如何使用NDB的id属性?
user = User.get_by_id(user_id)
if user is None:
user = User(id=user_id)
不过貌似这个代码不工作 - 记录添加几次。
(user_id是在我的情况字符串)
使用旧数据存储我已使用密钥。现在,我必须使用IDS(从NDB Cheat Sheet doc拍摄):如何使用NDB的id属性?
user = User.get_by_id(user_id)
if user is None:
user = User(id=user_id)
不过貌似这个代码不工作 - 记录添加几次。
(user_id是在我的情况字符串)
我找到了原因,我上面的代码是正确的,bu我的班级包含id属性:
class User(ndb.Model):
id = ndb.StringProperty()
这是问题所在。
请参阅部分“建设的一个关键”的NDB小抄的。
user = ndb.Key('User', user_id).get()
if user is None:
user = User(id=user_id)
或试试这个,让我知道,如果它的工作原理:
user = User.get_by_id(user_id)
if user is None:
user = User(id=user_id)
顺便说一句,即使user_id是一个字符串,你应该使用'%s' % user_id
听起来像你想的事务操作:
user = User.get_or_insert(user_id)
你如何创建实体?他们有父母吗? – aschmid00 2012-07-10 20:29:07
@aschmid00,问题中的代码包含实体的创建 - 请参阅第3行。 – 2012-07-11 15:24:42