我有一个简单的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)
它有效,但是有更好的方法吗?
答案 0 :(得分:5)
你几乎就在那里 - 但是没有必要再获取任务,只是再次使用它的关键属性:
task_key = ndb.Key(TaskList, 7)
user = UserProfile.query(UserProfile.tasks == task_key)
或等效地:
user = UserProfile.query(UserProfile.tasks == ndb.Key(TaskList, 7))