Форма Django обновляется некорректно
Я сделал Django сайт с динамически генерируемыми формами. Сайт основан на Leaflet.js в качестве фронтенда, JS библиотеке для веб-картографии.
Я клонировал форму из HTML в JS скрипт, чтобы привязать форму как всплывающее окно каждого географического объекта. Моя идея состоит в том, чтобы обновлять эти всплывающие окна/формы, когда пользователь обновляет данные в поле, например, вводит данные об объекте ( "Этот дом заброшен", "Это дерево очень большое", просто глупые примеры).
Проблема в том, что AJAX запрос отправляет не правильные данные, а пустую форму, присутствующую в HTML документе.
Как я могу обратиться к обновленной форме для отправки данных? POST запрос отправляется правильно, но приходит пустой, так как отправляется пустая форма.
Мой AJAX запрос:
$(document).on('click', '#submitButton', function(e){
e.preventDefault();
$.ajax({
type : "POST",
headers: {'X-CSRFToken': csrf_token},
url: "update_note/",
data: {
id: $('#id_id').val(),
note_heading: $('#id_note_heading').val(),
note_des: $('#id_note_des').val(),
dataType: "json"
},
success: function(json){
$('#form_pop').val(''); // remove the value from the input
console.log(json); // log the returned json to the console
console.log("success"); // another sanity check
},
failure: function() {
console.log('error')
}
});
return false
});
Как я привязываю скрытую форму в HTML к функциям Leaflet, получая данные из БД, предварительно заполняя форму, если есть данные об этой функции:
var pop_up = document.getElementById('form_pop').cloneNode(true); pop_up.hidden = false
async function render_geodata(name) {
const data = await load_geodata(name);
L.geoJSON(data, {
onEachFeature: function (feature, layer) {
pop_up_cl = pop_up.cloneNode(true)
pop_up_cl.id_id.value = feature.id
pop_up_cl.id_note_heading.value = feature.properties.note_heading
pop_up_cl.id_note_des.value = feature.properties.note_des
layer.bindPopup(
pop_up_cl
);
}
}).addTo(map)
}
Моя форма DTL:
<form id='form_pop' method = "POST" hidden= 'true'>
{% csrf_token %}
{{ form }}
<button type="button" id="submitButton">Send</button>
</form>
Моя форма Django:
from django import forms
class markerNote(forms.Form):
id = forms.IntegerField()
note_heading = forms.CharField()
note_des = forms.CharField()
