заказ ("- модифицированный") с геомоделью - PullRequest
2 голосов
/ 19 сентября 2010

Редактировать: Решено с помощью ключа = лямбда и изучения того, что я на самом деле делаю.

С гемоделью типа

class A(GeoModel,search.SearchableModel):

Я пытаюсь сделать заказ по дате, используя db.GeoPt для хранения карт Google. координаты с GAE и геомоделью я могу сопоставить. Но порядок ("- модифицированный ») не работает. Следов нет. Все идеи приветствуются. Код, который следует отсортировать, -

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 () принимает ровно 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 ]

5 голосов
/ 20 сентября 2010

GeoModel сортирует результат от ближайшей к самой дальней точке.Вам нужно отсортировать результаты с помощью python после того, как они выполнили бесконтактное_фектирование:

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

Отредактировано: забудьте использовать аргумент 'key' для отсортированного

5 голосов
/ 19 сентября 2010

GeoModel выполняет несколько запросов и объединяет результаты в один набор результатов. Каждый запрос должен выполняться с вашим порядком сортировки, но конечные результаты не могут быть отсортированы в соответствии с этим порядком. Сортировки результатов в памяти, вероятно, достаточно, чтобы преодолеть это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...