构建GQL查询(谷歌应用程序引擎)是对的ReferenceProperty条件
-
21-08-2019 - |
题
说我有以下模型:
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
一个站对象。
如何组装一GQL查询与被foo
引用的站对象的引用返回所有计划的对象?
这是我的最好(尽管的不正确强>)尝试形成这样的查询:
myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())
再次foo
是一个的站强>对象
解决方案
您不应该使用字符串替换用户数据插入到GQL字符串。 GQL支持参数替换,这样就可以做到这一点:
db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())
或者,使用查询接口:
Schedule.all().filter("station =", foo.key())
其他提示
这是更容易的事情是通过将“集合名称”字段到的ReferenceProperty改变模型定义:
站= db.ReferenceProperty(站,需要=真,集合名称= “日程表”)
然后,你可以这样做:
foo.schedules
只要你想获得所有站的时间表。
不隶属于 StackOverflow