Google App Engine上的Django和GeoSpatial查询 - 如何克服“每个查询的一个不等式”问题?

时间:2011-03-13 21:09:05

标签: python django google-app-engine google-cloud-datastore django-nonrel

我刚刚开始使用GAE,我偶然发现了一个让我质疑在GAE上使用Django的可行性的问题。

我想要做的就是使用Django的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:无效过滤器:每个查询只有一个属性可能有不等过滤器(< =,> =,<,>)..

如何解决这个问题? (最好使用Django的ORM)

1 个答案:

答案 0 :(得分:3)

不幸的是,我不知道使用Django的ORM来解决这个问题的简单方法。但是,您可以在GAE上执行地理空间查询(包括您在示例中所做的边界框查询)。有关详细信息,请查看Geospatial Queries with Google App Engine using GeoModel文章。