Django地理空间查询涉及同一模型的两个字段

时间:2014-10-27 06:18:19

标签: python django postgresql postgis geodjango

我有一个Alert模型,其中coordinatesdistance为字段。我想提出一个查询,从给定的坐标中提取距离小于警报distance字段值的所有警报。

如果这不使用GIS功能,我可以在Django中使用F对象,但地理空间查询显然不支持F对象。

如何实现这样的查询? 以下是我理想的查询:

Alert.objects.filter(coordinates__distance_lte=(coordinates, F("distance")))

我在Postgis上运行GeoDjango。

以下是警报模型的相关部分:

class Alert(models.Model):
    coordinates = models.PointField()
    distance = models.IntegerField()

以下是我希望生成的SQL:

select * from alert where ST_Distance_Sphere(coordinates, 'POINT(3 50)') < distance;

显然,我有一个原始查询的解决方案,但我很想知道这是否可以直接通过ORM。

0 个答案:

没有答案