私は非常に単純なユースケースのように見せつけようとしていますが、私は悲惨に失敗しているようです。この課題の目的は、高レプリケーションデータストア内のGoogleアカウントのユーザー名を使用してログインし、非常に一貫性のあるユーザーの一連のレコードを検索することです。NDBはUsers 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でしか照会できませんが、エンティティグループの親としてユーザーを設定できないようですが、どのようにすれば、私はログインしたユーザーによって常にアカウントを検索し、一貫性があることを確認するにはどうすればよいですか?
アカウントを取得すると、祖先のクエリ処理によってコンテンツの一貫性が確保されますが、ユーザーに基づいて祖先を特定することには時間がかかります。
、私は実際にその意志マッピングエンティティを進めて行きますよユーザーIDをアカウントキーにマップします。このようにして、私はアカウントに対して多くのユーザーを持つことができますが、引き続きget()を使ってアカウントを取得します。 – Sologoub
また、ユーザーが電子メールアドレスを変更すると矛盾する可能性があるため、ドキュメントにはUserPropertyが保存されないようにアドバイスします。https://developers.google.com/appengine/docs/python/users/userobjects – Spycho