我試圖圍繞什麼似乎是一個非常簡單的用例,但我似乎失敗悲慘。練習的目標是查找一組用於在高複製數據存儲中使用Google帳戶用戶名登錄並且非常一致的記錄。NDB使用用戶API來組成一個實體組
我的數據是這樣的:
class Account(ndb.Model):
owner = ndb.UserProperty()
name = ndb.StringProperty()
class Content(ndb.Model):
content = ndb.StringProperty()
當我第一次創建帳戶,我只是做到以下幾點:
現在current_user = users.get_current_user()
new_account = Account(owner=current_user, name='Some Name')
new_account.put()
創建內容:
new_content = Content(parent=new_account.key, content='Some Content')
new_content.put()
當用戶登錄後,我只能通過UserProperty進行查詢,但我似乎無法將用戶設置爲實體組的父級,那麼如何確保我始終可以通過登錄用戶查找帳戶並保持一致?
一旦我有了賬戶,祖先查詢過程將確保內容檢索的一致性,但是我堅持根據用戶計算出祖先。
要展開什麼尼克提出了一下,我實際上有一個映射實體將前進將用戶標識映射到帳戶密鑰。通過這種方式,我可以爲一個帳戶提供多個用戶,但仍然使用get()來檢索該帳戶。 – Sologoub 2012-04-24 17:19:51
該文檔還建議不要存儲UserProperty,因爲如果用戶更改其電子郵件地址,它可能會變得不一致:https://developers.google.com/appengine/docs/python/users/userobjects – Spycho 2013-08-24 10:41:53