你能帮我解决我遇到的问题吗?基本上,我按照在线教程创建了一个基于位置的应用程序,该应用程序显示用户位置周围的商店。但是,用户的经度和纬度是在views.py中硬编码的。
views.py
from django.http import request, HttpResponse
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 = 10.113
latitude = -2.231
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:15]
template_name = 'shops/index.html'我在模板中添加了Leaflet集成,所以现在我可以访问用户的纬度和经度变量,我需要将它们传递回views.py并在那里更新它们。这在总体上是可能的吗?你对此有什么解决方案?非常感谢你的帮助
index.html
map.locate({setView: true, maxZoom: 16});
function onLocationFound(e)
{
var radius = e.accuracy;
var lat = e.latlng.lat;
var lon = e.latlng.lng;
L.marker(e.latlng).addTo(map)
.bindPopup("You are within " + radius + " meters from this point"+ +lat+lon).openPopup();
L.circle(e.latlng, radius).addTo(map);
}发布于 2019-12-06 03:13:56
在不做网络请求的情况下,让django和视图在html内容被呈现/发送到客户端之后单独读取它是不可能的。
您必须使用网络与视图通信,因此您可以让一些JS向您的视图发送请求,或者查看django websockets和通道。
https://channels.readthedocs.io/en/latest/
你也可以使用ajax,或者像前面提到的那样,使用request模块并执行POST请求。
https://stackoverflow.com/questions/59201780
复制相似问题