Автоматическое получение местоположения пользователя из браузера пользователя вместо жесткого кодирования в 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