2

非常に単純なユースケースと思われるものに頭を悩ませようとしていますが、惨めに失敗しているようです。この演習の目標は、高レプリケーション データストア内で Google アカウントのユーザー名を使用してログインし、非常に一貫性のあるユーザーの一連のレコードを検索することです。

私のデータは次のようになります。

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 でのみクエリを実行できますが、ユーザーをエンティティ グループの親として設定できないようです。ログインしているユーザーが常にアカウントを検索できるようにするにはどうすればよいですか?非常に一貫性がありますか?

アカウントを取得すると、祖先クエリ プロセスによってコンテンツ取得の一貫性が保証されますが、ユーザーに基づいて祖先を特定することに行き詰まっています。

4

2 に答える 2

5

これを行う最も簡単で最良の方法は、キー名を使用することです。この場合、Account エンティティのキ​​ー名はユーザーの ID である必要があります。次のようなアカウントを作成できます。

new_account = Account(owner=current_user, id=current_user.user_id(), name='Some Name')

そして、あなたは次のようにそれらを調べることができます:

existing_account = Account.get_by_id(current_user.user_id())
于 2012-04-23T02:40:24.387 に答える
0

なぜそれをしたいのか正確にはわかりませんがAccount、祖先でクエリを実行できるように、親エンティティも作成する必要があります。

于 2012-04-23T00:20:41.110 に答える