说我有以下模型:

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

只要你想获得所有站的时间表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top