私はこの2つのモデルを持っています。
class Store(models.Model):
coords = models.PointField(null=True,blank=True)
objects = models.GeoManager()
class Product(models.Model):
stores = models.ManyToManyField(Store, null=True, blank=True)
objects = models.GeoManager()
ポイントまでの距離で商品を並べ替えたい。Product の stores フィールドが外部キーである場合、これを実行すると機能します。
pnt = GEOSGeometry('POINT(5 23)')
Product.objects.distance(pnt, field_name='stores__coords').order_by('distance')
しかし、フィールドはManyToManyフィールドであるため、壊れます
ValueError: <django.contrib.gis.db.models.fields.PointField: coords> is not in list
距離を計算するためにどのストアを使用する必要があるのか はっきりしないため、これを期待していましたが、これを行う方法はありますか.
特定のポイントまでの距離で並べられた製品のリストが必要です。