2017-02-14 4 views
0

Ich arbeite an einer einfachen Online-Datenbank für den Austausch technischer Geräte zwischen Künstlern.Vererbung oder Besitz zwischen Ndb-Entitäten in Google Datastore

Ich würde gerne eine Klasse User() besitzen Entitäten anderer Klassen wie Lamp() oder Speaker().

Es scheint, dass ich ReferenceProperty verwenden werden könnte, wenn db verwenden, aber wenn ich die Dokumentation für ndb scheint es mir ein wenig verwirrend aussehen durch, da ich nicht ReferenceProperty finden.

Wenn ja, mit ndb, ich will ein Unternehmen der Klasse lassen Lamp()User() von einer Einheit der Klasse gehört, durch die ID ein User() Referenzierung, was soll ich tun? Zu wollen es so etwas wie das, was ich unten geschrieben habe, obwohl ich ziemlich sicher bin, dass, was ich unten in der Tat nicht Arbeit geschrieben:

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

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

Der Ersatz für 'db.ReferenceProperty' in ndb ist 'ndb.KeyProperty'. –

Antwort

0

Was Sie suchen ist ndb.KeyProperty(kind="User") wie in https://cloud.google.com/appengine/docs/python/ndb/entity-property-reference gezeigt

diese Weise, wenn Sie einen Benutzer u zum Beispiel haben und wollen, dass alle von u Besitz Lampen könnten Sie sie auf diese Weise erhalten:

lamps = Lamp.query(Lamp.owner == u.key).fetch()

Und wenn Sie eine Lampe l und wollen, müssen die Eigentümer von l bekommen Sie es auf diese Weise erhalten könnte:

owner = l.owner.get()

Sie auch Vorfahren Ihre clases die KeyProperty ohne Angabe wie in https://cloud.google.com/appengine/docs/python/ndb/queries

gezeigt zu verweisen verwenden könnte
Verwandte Themen