Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-将js变量传递给Django视图_Python_Django_Google Maps Api 3 - Fatal编程技术网

Python Django-将js变量传递给Django视图

Python Django-将js变量传递给Django视图,python,django,google-maps-api-3,Python,Django,Google Maps Api 3,我的问题与谷歌地图JavaScript API有关。更具体的是自动完成功能 我已经在我的测试站点中添加了自动完成功能作为搜索栏,效果很好,但是现在我想将选择的参数传递给Django视图。我被困在这里了 这是我的模板中的内容: <script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script> <script type="text/javas

我的问题与谷歌地图JavaScript API有关。更具体的是自动完成功能

我已经在我的测试站点中添加了自动完成功能作为搜索栏,效果很好,但是现在我想将选择的参数传递给Django视图。我被困在这里了

这是我的模板中的内容:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script type="text/javascript">
   function initialize() {
      var input = document.getElementById('searchTextField');
      var autocomplete = new google.maps.places.Autocomplete(input);
   }
   google.maps.event.addDomListener(window, 'load', initialize);
   google.maps.event.addListener(autocomplete, 'place_changed', function() {
   var place = autocomplete.getPlace();
   });
</script>

<form method="post" action="">{% csrf_token %}
    <input id="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
    <input type="submit" value="Search" class="postfix button"/>
</form>
我想做的是在Django视图中将变量“place”传递给变量“location”(变量位置应该包含lat和lon,我想在Geodjango中进一步使用它)。
request.POST
给出了以下内容:
,但我不能使用它

是否可以将var place的内容传递给django视图

谢谢你的反馈

编辑: 我目前使用geopy的解决方法:

模板:

<input id="searchTextField" name="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">

仍在寻找访问
脚本中
变量位置的方法。这可能吗?

首先在搜索输入中添加一个
名称属性。假设您将其命名为
searchTextField
,就像
id
一样。然后您可以执行
request.POST.get('searchTextField')

Thx以获得回复。事实上,昨天晚上,我根据字段的名称构建了一个变通方法。查看我的更新。但是仍然在寻找一种方法来访问
脚本中的
变量位置
@katylavalelee。我有一个类似的问题。我在view.py中有一个函数,比如“def home(request)”。现在我想访问“static/DjangoApp/DjangoApp.js”中的变量/值。我知道通过如下方式呈现页面来访问html页面上的值:return render(请求'search\u bar/home.html',{'table':table\u name})。但是我们如何在.js页面上访问值。任何提示都会非常明显。@girijesh96通常您会通过Javascript提交表单。我对Google的自动完成输入了解不够,不知道你是否可以将其作为一个普通的HTML表单发布。@girijesh96同样,你看到了关于原始问题的第一条评论了吗?您可以创建一个隐藏字段,并使用javascript将该字段的值设置为自动完成框中的值。创建一个隐藏字段,并使用javascript将其值设置为
place
;并在表单的提交按钮上使用jquery触发填充。您需要使用javascript将place值获取到表单中,然后当您提交表单时,它将被发送到Django视图,您可以通过相同的方式访问它
request.POST.get('place')
.Thx获取回复。添加我添加的脚本的结尾:
document.getElementById('place')。value=autocomplete.getPlace()表单中插入了一个额外的输入字段:
。但字段
place
的值仍为空。这是因为在提交表格之前未计算
var位置
<input id="searchTextField" name="searchTextField" type="text" placeholder="Enter a location" autocomplete="on">
if request.method == 'POST':
    location = request.POST.get('searchTextField')
    gn = geocoders.Google()  
    place, (lat, lng) = gn.geocode(location)