首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将html模板中的值传递给Django中的views.py

将html模板中的值传递给Django中的views.py
EN

Stack Overflow用户
提问于 2019-12-06 03:04:39
回答 1查看 118关注 0票数 1

你能帮我解决我遇到的问题吗?基本上,我按照在线教程创建了一个基于位置的应用程序,该应用程序显示用户位置周围的商店。但是,用户的经度和纬度是在views.py中硬编码的。

代码语言:javascript
复制
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并在那里更新它们。这在总体上是可能的吗?你对此有什么解决方案?非常感谢你的帮助

代码语言:javascript
复制
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);
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 03:13:56

在不做网络请求的情况下,让django和视图在html内容被呈现/发送到客户端之后单独读取它是不可能的。

您必须使用网络与视图通信,因此您可以让一些JS向您的视图发送请求,或者查看django websockets和通道。

https://channels.readthedocs.io/en/latest/

你也可以使用ajax,或者像前面提到的那样,使用request模块并执行POST请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59201780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档