Предположим, что у меня есть фотомодель. В фотомоделье у меня есть поля долготы и широты в моей фотомодели.Как фильтровать набор запросов django на основе координат местоположения?
class Photo(models.Model):
photographer = models.ForeignKey(Photographer, related_name = 'shot_owner')
title = models.CharField(max_length=140, blank=True)
description = models.CharField(max_length, blank=True)
longitude = models.DecimalField(max_digits=16, decimal_places = 14, null=True, blank=True)
latitude = models.DecimalField(max_digits=16, decimal_places = 14, null=True, blank=True)
Я использую Django Tastypie в качестве рамки для отдыха. Предположим, пользователь решил, что они захотят увидеть все фотографии в радиусе 10 км. Как можно достичь этого? Вот мой ресурс ниже:
class PhotosNearMe(ModelResource):
photographer = fields.ForeignKey(PhotographerResource, 'photographer', full=True)
class Meta:
queryset = Photo.objects.all()
resource_name = 'photos-near-me'
fields = ['id', 'title', 'description', 'latitude','longitude','photographer']
authentication = BasicAuthentication()
authorization = DjangoAuthorization()
serializer = Serializer(formats=['json'])
include_resource_uri = False
filtering = {
'photographer' : ALL_WITH_RELATIONS,
}
def get_object_list(self, request):
return super(PhotosNearMe, self).get_object_list(request).filter(....)
Здесь я испытываю проблемы. Как я уже упоминал ранее, пользователь сможет отправить мне свои координаты, и я могу их сохранить. Что-то вроде:
lati = bundle.obj.latitude
longi = bundle.obj.longitude
можно позже использовать латы и долго фильтровать через все изображения в базе данных, которые находятся в радиусе 10 км. Вопрос в том, как? я полагаю, что фильтр по какой-то области?
EDIT **
Я нашел то, что я мог бы, возможно, использовать, Find items within a certain range of given coordinate
Есть в любом случае я могу это реализовать?
Возможно, посмотрите на [GeoDjango] (http://geodjango.org/) – Amadan