2017-02-14 30 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

相關問題