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

您快到了 - 但无需获取任务,只需再次使用其 key 属性:

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 回答