Rya*_*chi 5 python google-app-engine gql
说我有以下型号:
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)
Run Code Online (Sandbox Code Playgroud)
让我们说我有一个存储在var中的Station对象foo.
如何组装一个GQL查询,该查询返回所有Schedule对象,并引用由foo?引用的Station对象?
这是我最好的(虽然不正确)尝试形成这样的查询:
myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())
Run Code Online (Sandbox Code Playgroud)
再一次foo是Station对象
Nic*_*son 10
您不应该使用字符串替换将用户数据插入GQL字符串.GQL支持参数替换,因此您可以这样做:
db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())
Run Code Online (Sandbox Code Playgroud)
或者,使用Query接口:
Schedule.all().filter("station =", foo.key())
Run Code Online (Sandbox Code Playgroud)
更简单的方法是通过将'collection_name'字段添加到ReferenceProperty来更改模型定义:
station = db.ReferenceProperty(Station,required = True,collection_name ="schedules")
然后你可以这样做:
foo.schedules
无论何时你想获得所有车站的时刻表.
| 归档时间: |
|
| 查看次数: |
4199 次 |
| 最近记录: |