У меня есть следующие модели (упрощенно)
from django.contrib.gis.db import models as geomodels
modelB (geomodels.Model):
objects = geomodels.GeoManager()
modelA (geomodels.Model):
point = geomodels.PointField(unique=True)
mb = models.ForeignKey(modelB,related_name='modela')
objects = geomodels.GeoManager()
Я пытаюсь найти все объекты modelB и отсортировать их по расстоянию от заданного местоположения (где расстояние определяется как расстояние между заданным местоположением иточечный объект связанной модели A).Когда я пытаюсь выполнить запрос
modelB.objects.distance((loc, field_name='modela__point')
, я получаю сообщение об ошибке:
TypeError: ST_Distance output only available on GeometryFields.
Обратите внимание, что loc это объект Point. Однако когда я запускаю запрос
modelB.objects.filter(modela__point__distance_lte = (loc, 1000))
этот запрос работает без ошибок и, как и ожидалось.
Есть идеи, в чем может быть ошибка?Я использую django 1.2.4, PostGis 1.5.2, PostGres 8.4.
Спасибо.