我正在使用geodjango,我想根据距离过滤表中的行:
geom = models.MultiLineStringField()
当我像这样使用geodjango时:
geo_objects.objects.filter(geom__dwithin=(pnt, D(km=10)))
其中pnt为'POINT(-73.5666999999996136 45.5000000000000213)'
Geodjango给了我:
*** django.core.exceptions.FieldError: Join on field 'geom' not permitted. Did you misspell 'dwithin' for the lookup type?
另一方面,直接从postgres命令行做同样的事情(据我所知)会返回明智的结果:
select * from geo_objects
WHERE ST_DWithin(geo_objects.geom, 'POINT(-73.5665 45.5000)', 122222, false)
效果很好。
我做错了什么?
提前致谢。
答案 0 :(得分:0)
这就是答案: 为了执行几何查询,您需要一个geomanager。 https://docs.djangoproject.com/en/dev/ref/contrib/gis/model-api/#geomanager