Моя модель имеет два поля (широта и долгота), которые я хочу объединить, чтобы сформировать точечный объект. Тем не менее, я не могу понять, как фильтр на основе комбинации этих значений:Django: фильтрация Queryset из двух полей модели
Например:
>>> from django.contrib.gis.geos import Point
>>> lat = 5
>>> lon = 1
>>> pnt = Point(lat, lon)
>>> buf = pnt.buffer(0.0001)
>>> z = Thing.objects.filter(pnt__intersects=buf)
FieldError: Cannot resolve keyword 'pnt' into field. ## I dont have a model field named pnt
Я понимаю, что это не правильный подход, но я думаю, что это иллюстрирует проблему, что я иметь. Как я могу объединить два поля модели - lat + lon
- в объект Point
, а затем фильтровать на основе этой точки?
EDIT: добавление вещь модель
class Thing(models.Model):
lat = models.FloatField()
lon = models.FloatField()
Как определяется модель 'Thing'? – karthikr
Добавлены соответствующие поля модели над @karthikr. Дайте мне знать, если я упустил какую-либо важную информацию, и я добавлю ее. Спасибо за любые идеи, которые могут помочь! –
'Thing.objects.filter (pnt' ожидает, что' pnt' будет атрибутом модели. – karthikr