Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用程序引擎上的Django和地理空间查询-如何克服';每个查询一个不等式';问题_Python_Django_Google App Engine_Google Cloud Datastore_Django Nonrel - Fatal编程技术网

Python 谷歌应用程序引擎上的Django和地理空间查询-如何克服';每个查询一个不等式';问题

Python 谷歌应用程序引擎上的Django和地理空间查询-如何克服';每个查询一个不等式';问题,python,django,google-app-engine,google-cloud-datastore,django-nonrel,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.fil

我刚刚开始使用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)

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

请记住,这不是一个合适的地理空间查询:常规RDBMS也无法有效地对此进行索引。很多RDBMS都有带有特殊索引的地理空间工具包,这是有原因的。好吧,我将放弃Django ORM,直接使用GAE DB API。我应该放弃Django而使用webapp框架吗?(我的服务器端代码非常小且简单,所以我不担心更改它)