Domanda

Dire ho il seguente modello:

class Schedule(db.Model):
    tripCode = db.StringProperty(required=True)
    station = db.ReferenceProperty(Station, required=True)    
    arrivalTime = db.TimeProperty(required=True)
    departureTime = db.TimeProperty(required=True)

E diciamo che ho un oggetto di Stazione memorizzata nel var foo.

Come faccio a montare un GQL query che restituisce tutte Pianificazione di oggetti con un riferimento alla Stazione di oggetto a cui fa riferimento foo?

Questo è il mio migliore (anche se errata) tentativo di formare una query di questo tipo:

myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())

Ancora una volta foo è un Stazione oggetto

È stato utile?

Soluzione

Non si dovrebbero inserire i dati utente in un GQL stringa usando la stringa di sostituzione.GQL supporta la sostituzione del parametro, in modo che si può fare questo:

db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())

o, utilizzando l'interfaccia di Query:

Schedule.all().filter("station =", foo.key())

Altri suggerimenti

Ancora più facile cosa da fare è modificare la definizione del modello aggiungendo il 'collection_name' campo per il ReferenceProperty:

stazione = db.ReferenceProperty(Stazione required=True, collection_name="orari")

Poi si può semplicemente fare:

pippo.orari

ogni volta che si desidera ottenere tutte le stazioni di orari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top