2017-02-14 22 views
0

Я работаю над простой онлайн-базой данных для совместного использования технической техники между художниками.Наследование или собственность между объектами ndb в Google Datastore

Я хотел бы дать классу User() собственные сущности других классов, такие как Lamp() или Speaker().

кажется, что я мог бы использовать ReferenceProperty при использовании БД, но когда я смотрю через документацию для ndb это кажется немного запутанным для меня, так как я не могу найти ReferenceProperty.

Так что если, используя ndb, я хочу, чтобы сущность класса Lamp() принадлежать субъектом класса User(), путем ссылки на идентификатор User(), что я должен делать? Желая, чтобы это было что-то вроде того, что я написал ниже, хотя я довольно уверен, что я написал ниже, фактически не работы:

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

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

Замена 'db.ReferenceProperty' в ndb - '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

 Смежные вопросы

  • Нет связанных вопросов^_^