使用舊數據存儲我已使用密鑰。現在,我必須使用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