2013-06-26 4 views
1

Я новичок в POSTGIS и GeoDjango. У меня есть запрос, работающий в POSTGIS, однако мне трудно преобразовать его в запрос GeoDjango.Ошибка преобразования запроса POSTGIS в запрос GeoDjango

Моя таблица world_node содержит две колонки: node - целое число, и mpoint - геометрическая точка

PostGIS SQL Query (рабочий):

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

Примечание: mpoint столбец в моей таблице, а также поле в моем классе Node в models.py

Любая помощь будет оценена!

ответ

2

Ваш синтаксис не является правильным, вы должны переключиться 'поли' и '' mpoint так:

узлы = Nodes.objects.filter (mpoint__contains = поли)