Django неправильное преобразование числа с плавающей точкой x.xx в x, xx в шаблоне - PullRequest
0 голосов
/ 26 января 2020

У меня проблема с моим Django сайтом. Я передаю переменную latitude_actuelle, соответствующую широте от представления к шаблону. Когда я печатаю переменную в виде, она является плавающей точкой в ​​правильном формате x.xx. Но когда я отображаю переменную в шаблоне с {{latitude_actuelle}}, точка заменяется запятой: x,xx, что является неправильным форматом для числа с плавающей точкой. Проблема в том, что мне нужно, чтобы поплавок был в правильном формате, чтобы центрировать карту Google на заданной широте и долготе, используя javascript в шаблоне.

Я думал об изменении переменной в скрипте примерно так:

var lat_actuelle = {{ latitude_actuelle }}
use float(lat_actuelle.replace(',','.')) 

Но похоже, что мы не можем получить доступ к переменным шаблона таким образом в javascript.

Есть ли способ отключить неправильное преобразование числа с плавающей точкой x.xx в x,xx? И если нет, как я могу решить проблему?

Заранее спасибо!

Вот соответствующая часть моего файла, если необходимо:

view

def infos_localisation(request):
    latitude_actuelle = 50.66981991272638
    longitude_actuelle = 4.615554319641566
    point = request.user.useradvanced.localisation
    if point != None:
        latitude_actuelle = float(point.y)
        longitude_actuelle = float(point.x)
    if request.method == "POST":
        form = LocationForm(request.POST)
        if form.is_valid():
            longitude = float(form.cleaned_data['longitude'].replace(',','.'))
            latitude = float(form.cleaned_data['latitude'].replace(',','.'))
            request.user.useradvanced.localisation = Point(longitude, latitude)
            request.user.useradvanced.save()
            messages.success(request, 'Votre localisation a été correctement mise à jour')
            return redirect("informations")
    else:
        form = LocationForm()

    return render(request, 'inscription/infos_localisation.html', locals())

javascript

function initMap() {
  act = {lat: "{{ latitude_actuelle }}", lng: "{{ longitude_actuelle }}"}
  var map = new google.maps.Map(document.getElementById('map'), {center: act, zoom: 15});
  var marker = new google.maps.Marker({position: act, map: map});
  document.getElementById('longitude').value = "{{ longitude_actuelle }}";
  document.getElementById('latitude').value = "{{ latitude_actuelle }}";
}

1 Ответ

0 голосов
/ 26 января 2020

Благодаря этому ответу , предложенному в комментариях, я нашел решение. Вот оно:

{% load l10n %}

{{ latitude_actuelle|unlocalize }}
...