Как конвертировать мили в километры в geodjango

У меня есть представление, которое работает нормально, но мне трудно отобразить результат в километрах. Я вычислил расстояние между двумя точками, но получил результат в метрах, а мне нужно в километрах.

vews.py

from django.contrib.gis.db.models.functions import Distance



class SearchResultsView(generic.TemplateView):
    template_name = "search.html"

    def get_context_data(self, **kwargs):
        context = super(SearchResultsView, self).get_context_data(**kwargs)
        query = self.request.GET.get('q', default='')
        location_ = self.request.GET.get('location')
        geolocator = Nominatim(user_agent="geo", timeout=10000)
        location = geolocator.geocode(location_)
        print(location)
        new = Point(location.latitude, location.longitude, srid=4326)
        context.update({
            'job_listing': JobListing.objects.annotate(
                distance=Distance("location_on_the_map", new)
            ).filter(Q(job_title__icontains=query)).order_by("distance")
        })
        return context


Согласно документации geodjango объект Distance, который вы аннотируете в кверисет JobListing, сделает преобразование за вас - вам просто нужно обратиться к distance.km или distance.mi

Вернуться на верх