我正在开发一个简单的在线数据库,用于在艺术家之间共享技术设备。
我想让一个类User()
拥有其他类的实体,例如Lamp()
或Speaker()
。
似乎我在使用 db 时可以使用ReferenceProperty
,但是当我查看ndb
的文档时,这对我来说似乎有点混乱,因为我找不到ReferenceProperty
.
那么,如果使用ndb
,我想通过引用User()
的 id 让类的实体Lamp()
由类User()
的实体拥有,我该怎么办?希望它类似于我在下面写的内容,尽管我很有信心我在下面写的内容实际上不起作用:
class User(ndb.Model):
name = ndb.StringProperty()
email = ndb.....
class Lamp(db.Model):
owner = db.ReferenceProperty(User)
您要查找的内容ndb.KeyProperty(kind="User")
如 https://cloud.google.com/appengine/docs/python/ndb/entity-property-reference 所示
这样,如果你有一个用户u
例如,并希望所有灯都归u
所有,你可以这样得到它们:
lamps = Lamp.query(Lamp.owner == u.key).fetch()
如果你有一个灯l
,想得到l
的主人,你可以这样得到它:
owner = l.owner.get()
您还可以使用祖先来引用您的分支,而无需指定KeyProperty
,如 https://cloud.google.com/appengine/docs/python/ndb/queries