【发布时间】:2011-02-21 16:27:12
【问题描述】:
我有以下模型(简化)
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()
我正在尝试查找所有模型 B 对象并按与给定位置的距离对它们进行排序(其中距离定义为给定位置与关联模型 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。
谢谢。
【问题讨论】:
标签: django django-models geodjango