用geomodel命令(“ - modified”)

时间:2010-09-19 12:12:12

标签: python google-app-engine

编辑:使用key = lambda解决并了解我实际在做什么。

像gemodel一样

class A(GeoModel,search.SearchableModel):

我正在尝试按日期使用db.GeoPt来存储谷歌地图 与GAE和geomodel的坐标我可以映射和匹配。但订单(“ - 修改后的“”没有用。没有任何痕迹。欢迎所有的想法。 应该排序的代码是

a = A.proximity_fetch(A.all().filter("modified >",
timeline).filter("published =", True).filter("modified <=",
bookmark ).order("-modified") ,db.GeoPt(lat, lon),max_results=PAGESIZE
+1, max_distance=m)

除订单(“ - 修改”)

外,所有参数似乎都有效

尝试使用lambda排序的建议方法我收到消息 “TypeError:lambda()只取1个参数(给定2个)”

a = A.proximity_fetch(A.all().filter("modified >", timeline).filter("published =", True).filter("modified <=", bookmark ).order("-modified") ,db.GeoPt(lat, lon),max_results=40, max_distance=m)
a = sorted(a, lambda x: x.modified, reverse=True)

2 个答案:

答案 0 :(得分:5)

GeoModel执行多个查询并将结果合并到一个结果集中。每个查询都应该按照排序顺序执行,但最终结果可能不会按照该顺序排序。在内存中对结果进行排序可能足以克服这个问题。

答案 1 :(得分:5)

GeoModel对距离最远点的结果进行排序。 在执行proximity_fetch之后,您需要使用python对结果进行排序:

result = sorted(result, key=lambda x: x.modified, reverse=True)

编辑:忘记使用'key'参数进行排序