1
Weakdancer OP 代码
https://gist.github.com/728218 git://gist.github.com/728218.git <script src="https://gist.github.com/728218.js"> </script> |
2
Weakdancer OP |
3
keakon 2010-12-05 01:43:49 +08:00
楼主的表述真的很难懂…
没猜错的话,你是要把if NowDay==KCB.time[0] and NowTime==KCB.time[-1] and NowWeek in KCB.week改成GQL查询条件吧 简单来说就是不行,因为datastore不支持复杂的查询,只能将一个属性作为一个整体来查询,不能查询time[-1]这种 因此你只能这样: KCBs = db.GqlQuery("SELECT * FROM kcb WHERE week = :1 ORDER BY date DESC LIMIT 1000", NowWeek) for KCB in KCBs: if NowDay==KCB.time[0] and NowTime==KCB.time[-1]: #... week是一个ListProperty,查询的时候直接用=就行了,IN的语义不是你理解的这样的 最后提醒一下,不是有特殊需求的话不要用GQL,因为查询较复杂时,构造非常不方便,而且性能很差。所有GqlQuery对象都能用等价且更方便高效的Query代替。 |