3

次のような単純なndbモデルがあります。

class TaskList(ndb.Model):
    title = ndb.StringProperty()
    description = ndb.TextProperty()
    priority = ndb.IntegerProperty()


class UserProfile(ndb.Model):
    user = ndb.UserProperty()
    tasks = ndb.KeyProperty(TaskList)

知られているように、TaskList オブジェクトには と がありEntity Kind Entity KeyますID。ID が 7 の場合、次のように ID 7 のオブジェクトを取得できます。

task = ndb.Key(TaskList, 7).get()

しかし、タスク ID 7 を持つユーザーを取得するにはどうすればよいでしょうか?

私は試した:

tsk = ndb.Key(TaskList, 7).get() 
user = UserProfile.query(UserProfile.tasks  == tsk.key)

それは機能しますが、より良い方法はありますか?

4

1 に答える 1

5

あなたはもうすぐそこにいます - しかし、タスクを取得する必要はありません.そのキープロパティを再び使用するだけです:

task_key = ndb.Key(TaskList, 7)
user = UserProfile.query(UserProfile.tasks == task_key)

または同等:

user = UserProfile.query(UserProfile.tasks == ndb.Key(TaskList, 7))
于 2012-06-26T07:41:50.997 に答える