【发布时间】:2014-08-02 15:22:14
【问题描述】:
我有一个带有单个 PointField 的地理模型,我希望为每个模型与给定点的距离添加注释,我可以稍后对其进行过滤并进行额外的跳棋。
有明显的queryset.distance(to_point) 函数,但这实际上并没有注释查询集,它只是为查询集中的每个模型添加一个距离属性,这意味着我以后不能再将.filter(distance__lte=some_distance) 应用于它。
我也知道像这样按场和距离本身进行过滤:
queryset.filter(point__distance_lte=(to_point, D(mi=radius)))
但由于我想要做多个过滤器(以获取不同距离范围内的模型计数),我真的不想让数据库每次都计算与给定点的距离,因为这可能很昂贵。
有什么想法吗?具体来说,有没有办法将其添加为常规注释而不是每个模型的插入属性?
【问题讨论】:
标签: django django-models postgis geodjango