我正在尝试返回一个查询集,其中包含与相关模型的距离。
models.py(简化版)
我需要返回的是具有特定标签/标签的Label对象,按照距离给定点的顺序排序。
可以通过以下方式找到标签:
"可在 Store 对象上计算的距离为:"
我想要做的是在“Label”表上执行一个查询,以返回所有内容,但我怀疑这是不可能的。
在查询集上尝试“distance”方法会导致:
如果做不到这一点,最明智的下一步是做最有效的事情。我能想到的唯一解决方案是执行这两个查询并将结果合并为一个集合。
models.py(简化版)
class Store(models.Model):
geopoint = models.PointField(srid=4326)
objects = models.GeoManager()
class HashTag(models.Model):
tag = models.CharField(max_length=100)
class Label(models.Model):
hashtags = models.ManyToManyField(HashTag)
store = models.ForeignKey(Store)
我需要返回的是具有特定标签/标签的Label对象,按照距离给定点的顺序排序。
可以通过以下方式找到标签:
Label.objects.filter(hashtags__in=tags)
"可在 Store 对象上计算的距离为:"
Store.objects.filter(label__hashtags__in=tags)
.distance(location).order_by('distance')
我想要做的是在“Label”表上执行一个查询,以返回所有内容,但我怀疑这是不可能的。
在查询集上尝试“distance”方法会导致:
TypeError: ST_Distance output only available on GeometryFields.
如果做不到这一点,最明智的下一步是做最有效的事情。我能想到的唯一解决方案是执行这两个查询并将结果合并为一个集合。