编辑:使用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)
答案 0 :(得分:5)
GeoModel执行多个查询并将结果合并到一个结果集中。每个查询都应该按照排序顺序执行,但最终结果可能不会按照该顺序排序。在内存中对结果进行排序可能足以克服这个问题。
答案 1 :(得分:5)
GeoModel对距离最远点的结果进行排序。 在执行proximity_fetch之后,您需要使用python对结果进行排序:
result = sorted(result, key=lambda x: x.modified, reverse=True)
编辑:忘记使用'key'参数进行排序