Я прочитал все сообщения и не могу найти ничего, что будет работать для моей программы. Я использую инфраструктуру mapbox js и хочу отправить местоположение пользователя 'position' в мой код представления Python, чтобы сохранить его в базе данных. Когда я делаю console.log () в коде js, он ничего не печатает. Когда я делаю печать в Python, она печатает «Нет». Я пробовал Ajax, как и другие посты, но ничего не работает. Может быть, я собираюсь передать данные из шаблонов в код Python неверным способом ... Пожалуйста, помогите
base.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> </script>
</head>
</html>
home.html
{% extends "geotracker/base.html" %}
{% load static %}
{% block content %}
<body>
<div id='map' width='100%' style='height:400px'></div>
<form id="myform" name="myform">
{% csrf_token %}
<input type="hidden" id="location" name="location"/>
</form>
<script>
mapboxgl.accessToken = 'mytoken';
var map = new mapboxgl.Map({
container: 'map', // container id
style: 'mapbox://styles/mapbox/streets-v9',
center: [-96, 37.8], // starting position
zoom: 3 // starting zoom
});
// Add geolocate control to the map.
var geolocate = new mapboxgl.GeolocateControl();
map.addControl(geolocate);
geolocate.on('geolocate', function(e) {
console.log('locating...');
var lon = e.coords.longitude;
var lat = e.coords.latitude
var position = [lon, lat];
var element = document.getElementById('location');
element.innerHTML = position;
$('#myform').submit(function (ev) {
//ev.preventDefault();
console.log('hello');
});
});
</script>
</body>
{% endblock %}
views.py
def home(request):
context = {
"mclient": mclient
}
print("POST in view:\t%s" % request.POST.get('location'))
# get users location if authenticated
if request.user.is_authenticated:
Fan.objects(user=str(request.user)).modify(set__currentPosition=
[0,0], image='http://localhost:8000/media/%s' %
request.user.profile.image, upsert=True)
return render(request, 'geotracker/home.html', context)