1

Geodjango を使用して、緯度と経度の値で構成されるオブジェクトを使用distance_lteしてフィルタリングしたいと考えています。Pointモデルをセットアップする方法は次のとおりです。

class Point(models.Model):
    latitude = models.FloatField()
    longitude = models.FloatField()
    objects = models.GeoManager()

class Thing(models.Model):
    point = models.ForeignKey(Point)
    objects = models.GeoManager()

私はこのようにフィルタリングしようとしましたが、うまくいきませんでした:

>>> from myapp.models import Thing, Point
>>> from django.contrib.gis.measure import D
>>> pnt = Point(37.7725205498, -122.408472587)
>>> z = Thing.objects.filter(point__distance_lte=(pnt,D(km=5)))
 TypeError: Related Field has invalid lookup: distance_lte

どうすればこのようなことをすることができますか? :

>>> z = Thing.objects.filter(point__distance_lte=(pnt,D(km=5)))
             ### or ###
>>> z = Thing.objects.filter(point__(latitude_longitude)__distance_lte=(pnt,D(km=5)))

アイデアをありがとう!

4

1 に答える 1