2017-02-14 36 views
0

我正在创建一个简单的在线数据库,用于在艺术家之间共享技术设备。Google数据存储区中ndb实体之间的继承或所有权

我想让一个类User()自己的其他类的实体,如Lamp()Speaker()

看来,我可以使用数据库时,使用ReferenceProperty,但是当我通过文档查找ndb似乎有点混乱给我,因为我无法找到ReferenceProperty

所以,如果使用ndb,我想让类Lamp()的实体由类User()的实体拥有,通过引用User()的ID,我应该怎么办?希望它是什么像什么,我已经写在下面,但我非常相信,我已经写在下面,其实工作并不:

class User(ndb.Model): 
    name = ndb.StringProperty() 
    email = ndb..... 

class Lamp(db.Model): 
    owner = db.ReferenceProperty(User) 
+0

ndb中'db.ReferenceProperty'的替换是'ndb.KeyProperty'。 –

回答

0

什么你要找的是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()

你也可以使用祖先引用您的clases不指定KeyProperty如图https://cloud.google.com/appengine/docs/python/ndb/queries

相关问题