2013-06-26 51 views
1

我是POSTGIS和GeoDjango的新手。我有一个查询在POSTGIS中工作,但是,我很难将其转换为GeoDjango查询。将POSTGIS查询转换为GeoDjango查询时遇到的问题

我的表world_node包含两列:node - 整数,mpoint - 几何点

POSTGIS SQL查询(工作):

SELECT * FROM world_node 
WHERE ST_CONTAINS(ST_GeomFromText('POLYGON((-100 0, 0 150, 150 0, 0 -100, -100 0))', 4326), mpoint); 

我想获得其所包含的所有点指定的多边形,它工作正常。

请帮助我使用GeoDjango语法。这是我到目前为止的代码:

poly = GEOSGeometry('Polygon((-100 0, 0 150, 150 0, 0 -100, -100 0))', 4326) 
nodes = Nodes.objects.filter(poly__contains=mpoint) 

我得到以下错误:

 
NameError: name 'mpoint' is not defined

注:M点是在我的表中的列,并在我的节点类models.py

任何帮助将不胜感激!

回答

2

你的语法是不正确的,你应该切换 '聚' 和 'M点' 是这样的:

节点= Nodes.objects.filter(mpoint__contains =聚)