我有一个简单的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)
可以,但是有更好的方法吗?
最佳答案
您快完成了 - 但无需获取任务,只需再次使用其 key 属性即可:
task_key = ndb.Key(TaskList, 7)
user = UserProfile.query(UserProfile.tasks == task_key)
或等同于:
user = UserProfile.query(UserProfile.tasks == ndb.Key(TaskList, 7))
关于google-app-engine - ndb 基于 KeyProperty 实例查询模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195388/