Google app engine google数据存储中ndb实体之间的继承或所有权
我正在开发一个简单的在线数据库,用于艺术家之间共享技术设备 我想让类Google app engine google数据存储中ndb实体之间的继承或所有权,google-app-engine,reference,app-engine-ndb,datastore,Google App Engine,Reference,App Engine Ndb,Datastore,我正在开发一个简单的在线数据库,用于艺术家之间共享技术设备 我想让类User()拥有其他类的实体,例如Lamp()或Speaker() 在使用db时,我似乎可以使用ReferenceProperty,但当我查看ndb的文档时,我似乎有点困惑,因为我找不到ReferenceProperty 因此,如果使用ndb,我想通过引用User()的id,让类Lamp()的实体归类User()的实体所有,我应该怎么做?希望它像我在下面写的一样,尽管我很自信我在下面写的东西实际上不起作用: class User
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”)
,如中所示
例如,如果您有一个用户u
,并且想要u
拥有的所有灯具,您可以通过以下方式获得:
lamps=Lamp.query(Lamp.owner==u.key).fetch()
如果您有一个灯l
,并且想要获得l
的所有者,您可以通过以下方式获得:
owner=l.owner.get()
您还可以使用祖先引用您的类别,而无需指定
KeyProperty
,如中所示。ndb中的db.ReferenceProperty
替换为ndb.KeyProperty
。