Передайте переменную javascript в views.py - PullRequest
0 голосов
/ 08 октября 2019

Мне действительно нужна помощь в этом вопросе, что кажется простым, но я не могу заставить себя разобраться в проблеме. Я понимаю, что использование ajax - лучший способ передать переменную из шаблона в представление. Что я сделал хорошо, или вы бы порекомендовали мне попробовать что-то другое?

 function updateArea(e) {
var data = draw.getAll();
var answer = document.getElementById('calculated-area');
if (data.features.length > 0) {
var area = turf.area(data);
// restrict to area to 2 decimal points
var rounded_area = Math.round(area*100)/100;
answer.innerHTML = '<p><strong>' + rounded_area + '</strong></p><p>square meters</p>';
var convertedData = 'text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(data));
document.getElementById('export').setAttribute('href', 'data:' + convertedData);
document.getElementById('export').setAttribute('download','data.geojson');
} else {
answer.innerHTML = '';
if (e.type !== 'draw.delete') alert("Use the draw tools to draw a polygon!");

}
}

Я хочу взять переменную области и convertData и передать их в представление.

Итак, посленекоторые поиски, проб и ошибок, вот что я пытался сделать с помощью Ajax. Когда я запускаю это, я не получаю ошибок, но я ничего не получаю в своей базе данных. template.html

<form id="areaform" method="POST">
          {% csrf_token %}
          <input type="submit" name="area" value=""/>
        </form>
$(document).on('submit', '#areaform',function(e) {
          e.preventDefault();    
          $.ajax({
            type: 'POST',
            url:'fertisatmap/area',
            data:{
                name: $('#area').val(),
            },
            sucess:function(){}    
          });
    });

urls.py

path('fertisatmap/area', fertisat_views.fertisatareaview, name='fertisat-area'),

views.py

def fertisatareaview(request):
    if request.method == "POST":
        area = request.POST['area']
        Fertidb.objects.create(
            area = area)  
        return HttpResponse('')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...