[英]Build a GQL query (for Google App Engine) that has a condition on ReferenceProperty
說我有以下型號:
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)
讓我們說我有一個存儲在var foo
的Station對象。
如何組裝一個返回所有Schedule對象的GQL查詢,並引用foo
引用的Station對象?
這是我最好的(雖然不正確 )嘗試形成這樣的查詢:
myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())
foo
再一次是Station對象
您不應該使用字符串替換將用戶數據插入GQL字符串。 GQL支持參數替換,因此您可以這樣做:
db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())
或者,使用Query接口:
Schedule.all().filter("station =", foo.key())
更簡單的方法是通過將'collection_name'字段添加到ReferenceProperty來更改模型定義:
station = db.ReferenceProperty(Station,required = True,collection_name =“schedules”)
然后你可以這樣做:
foo.schedules
無論何時你想獲得所有車站的時刻表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.