Django и GeoSpatial Queries в Google App Engine - Как преодолеть проблему «одного неравенства на запрос»? - PullRequest
2 голосов
/ 14 марта 2011

Я только начал использовать GAE и наткнулся на проблему, которая позволила мне усомниться в целесообразности использования Django в GAE.

Все, что я пытаюсь сделать, - это простой запрос сORM Джанго:

addresses = Address.objects.filter(lat__gte=form.cleaned_data['north_east_lat'])
addresses = addresses.filter(lat__lte=form.cleaned_data['south_west_lat'])
addresses = addresses.filter(lon__gte=form.cleaned_data['north_east_lon'])
addresses = addresses.filter(lon__lte=form.cleaned_data['south_west_lon'])

Но, очевидно, с Bigtable это не так просто:

BadFilterError: invalid filter: только одно свойство на запрос может иметь фильтры неравенства (<=,> =, <,>) ..

Как обойти эту проблему?(Использование ORM Джанго предпочтительно)

1 Ответ

3 голосов
/ 14 марта 2011

К сожалению, я не знаю простого способа использования ORM в Django для решения этой проблемы. Тем не менее, вы можете выполнять геопространственные запросы в GAE (включая запросы с ограничивающими рамками, как в своем примере). Для получения подробной информации, пожалуйста, ознакомьтесь с геопространственными запросами с помощью Google App Engine с использованием статьи GeoModel .

...