Django和Google App Engine的地理空间查询 - 如何克服“一次只能使用一个不等式”的问题?
我刚开始使用Google App Engine(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 个回答
3
很遗憾,我不知道有什么简单的方法可以用Django的ORM来解决这个问题。不过,你可以在Google App Engine上进行地理空间查询(包括像你例子中那样的边界框查询)。想了解更多细节,可以查看这篇文章:使用GeoModel在Google App Engine上进行地理空间查询。