Автоматическое получение местоположения пользователя из браузера пользователя вместо жесткого кодирования в django view для фильтрации ближайшего магазина

Я создаю простое приложение "Близлежащие магазины", которое выводит список магазинов, ближайших к местоположению пользователя, используя django и GeoDjango. Чтобы вывести список магазинов, я хочу получить местоположение пользователя из его браузера и затем отфильтровать ближайший магазин для пользователя, а не вводить его жестко.

views.py

from django.views import generic
from django.contrib.gis.geos import Point
from django.contrib.gis.db.models.functions import Distance
from .models import Shop

longitude = -80.191_788
latitude = 25.761_681

user_location = Point(longitude, latitude, srid=4326)


class Home(generic.ListView):
    model = Shop
    context_object_name = "shops"
    queryset = Shop.objects.annotate(
        distance=Distance("location", user_location)
    ).order_by("distance")[0:6]
    template_name = "Home.html"

models.py


class Shop(models.Model):
    name = models.CharField(max_length=100)
    location = models.PointField()
    address = models.CharField(max_length=100)
    city = models.CharField(max_length=50)

Вы можете использовать API сервисы, такие как Google Places API, чтобы получить данные о близлежащих объектах, а также текущее местоположение, используя вызов геолокации в API. https://developers.google.com/maps/documentation/places/web-service/overview

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