Получение значения из span в представление Django
У меня есть javascript, который получает долготу и широту с карты Google:
<script>
// Get element references
var confirmBtn = document.getElementById('confirmPosition');
var onClickPositionView = document.getElementById('onClickPositionView');
var latonIdlePositionView = document.getElementById('latOnIdlePositionView');
var longonIdlePositionView = document.getElementById('longOnIdlePositionView');
// Initialize locationPicker plugin
var lp = new locationPicker('map', {
setCurrentPosition: true, // You can omit this, defaults to true
}, {
zoom: 15 // You can set any google map options here, zoom defaults to 15
});
// Listen to map idle event, listening to idle event more accurate than listening to ondrag event
google.maps.event.addListener(lp.map, 'idle', function (event) {
// Get current location and show it in HTML
var location = lp.getMarkerPosition();
latOnIdlePositionView.innerHTML = location.lat;
longOnIdlePositionView.innerHTML = location.lng;
});
</script>
Вот HTML для определения пользователем своего местоположения:
<form method="POST" action="{% url 'geolocate' %}">
{% csrf_token %}
<div class="card-header">
<div class="float-start">
<h3 class="card-title">Me localiser</h3>
</div>
</div>
<div class="card-body no-padding">
<div id="map"></div>
<p>Latitude: <span id="latOnIdlePositionView"></span> Longitude: <span id="longOnIdlePositionView" ></span></p>
</div>
<div class="card-footer text-end">
<button type="submit" class="btn btn-primary">Mettre à jour</button>
</div>
</form>
Вот мое мнение:
def geolocate(request):
if request.method == 'POST':
lat = request.POST.get('lat_kw')
long = request.POST.get('long_kw')
caccount = Account.objects.get(username=request.user.username)
caccount.lat = lat
caccount.long = long
caccount.save()
return redirect('monprofil')
Я хочу получить значения из диапазонов latOnIdlePositionView и longOnIdlePositionView и поместить их в мое представление.
Я знаю, как это сделать, если у меня есть данные в поле ввода (используя имя), но я не знаю, как это сделать с помощью диапазонов.
согласно комментарию @raphael
Добавьте это внутри тега формы в HTML
<input type='hidden' name='lat_kw' id='lat_kw' value=''>
<input type='hidden' name='long_kw' id='long_kw' value=''>
Javascript
document.getElementById('lat_kw').value = location.lat;
document.getElementById('long_kw').value = location.lng;
Тогда вы можете идти