Django Filter Backend 按经纬度过滤

Django Filter Backend filter by latitude and longitude

我正在使用 django-google-maps 来获取地点的位置。 在模型中我有这个字段:

models.py

class PlaceLocation(models.Model):
    name = models.CharField(max_length=200)
    address = map_fields.AddressField(max_length=200)
    geolocation = map_fields.GeoLocationField(max_length=100)

当我添加地址时,它会自动找到以下格式的经纬度:44.4385334,26.005750199999966

我想使用 django 过滤器后端来按纬度和经度进行过滤,但我无法将值分开。

filters.py

class LocationFilter(django_filters.FilterSet):
    ids = NumberInFilter(name='id', lookup_expr='in')
    geolocation = django_filters.NumberFilter(name='geolocation', lookup_expr='iexact')

如果我访问:

'http://127.0.0.1:8000/locations/places/' 它会告诉我所有的地方。

'http://127.0.0.1:8000/locations/places/?geolocation=44.4385334,26.005750199999966' 它给了我一个空列表。

如何将值分开以便我可以像这样进行过滤: 'http://127.0.0.1:8000/locations/places/?lat=44.4385334&long=26.005750199999966'

最终成功了:

class LocationFilter(django_filters.FilterSet):
    ids = NumberInFilter(name='id', lookup_expr='in')
    geolocation = django_filters.CharFilter(name='geolocation', lookup_expr='exact')

    class Meta:
        model = Location
        fields = ('ids', 'geolocation')