JavaScript submit не работает Django From

У меня есть простая форма, которая использует JavaScript для валидации и отправки формы с помощью POST в базу данных.

Сценарий работает для 2 форм, но по какой-то причине не отправляется для других форм, и я не могу понять почему. Я даже скопировал существующую форму и JS заменил ее новыми именами, но она все равно не работает, и я не могу понять почему. Я пытался отлаживать, но получаю http200 для каждого запроса, не выдавая никаких ошибок, которые я могу видеть.

Рабочая версия:

Нерабочая версия с изменениями имен

//  Project Form submit
var project_form = document.getElementById("add-project");
project_form.addEventListener("submit", function (e) {
    e.preventDefault();

    if (validated(this)) {
        this.classList.add("was-validated");
        var i_name = document.getElementById("project-name").value;
        var i_website = document.getElementById("project-website").value;
        var i_comment = document.getElementById("ckeditor-classic").value;
        const csrftoken = document.getElementsByName("csrfmiddlewaretoken")[0].value;

        const formdata = new FormData();

        formdata.append("project_name", i_name);
        formdata.append("project-website", i_website);
        formdata.append("project_comment", i_comment);

        const xhr = new XMLHttpRequest();
        xhr.open("POST", "/apps/add_project");
        xhr.setRequestHeader("X-CSRFToken", csrftoken);
        xhr.send(formdata);
        xhr.onload = () => {
            window.location.reload();
        };
    }
})

// Form validation 
function validated(form) {
    console.log(form)

    var i_name = document.getElementById("project-name");
    var i_website = document.getElementById("project-website");


    i_name_value = i_name.value.trim();
    i_website_value = i_website.value.trim();


    if (i_name_value === "") {
        message = "Please fill project name field"
        setErrorFor(i_name, message);
    } else {
        setSuccessFor(i_name)
    }

    if (i_website_value === "") {
        message = "Please fill project website field"
        setErrorFor(i_website, message);
    } else if (!isUrl(i_website_value)) {
        message = "Website is not valid"
        setErrorFor(i_website, message);
    } else {
        setSuccessFor(i_website)
        return true;
    }
}


//  For Display Eroor
function setErrorFor(element, message) {
    element.classList.remove('is-valid');
    element.classList.add('is-invalid');
    parent = element.parentNode;
    for (var i = 0; i < parent.childNodes.length; i++) {
        if (parent.childNodes[i].className == "invalid-feedback") {
            notes = parent.childNodes[i];
            notes.innerHTML = message;
            break;
        }
    }
}

// For success Message
function setSuccessFor(element) {
    element.classList.remove('is-invalid');
    element.classList.add('is-valid');
}

// Check URL Pattern 
function isUrl(url) {
    var re = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
    return re.test(url)
}

Я просто сделал поиск и замену для investor на project, а затем создал точные копии форм/моделей/views/urls и т.д. и обновил до project

но он просто не обновляет базу данных.

Если я захожу в админку Django, я могу вручную добавить записи, поэтому я знаю, что миграция сработала.

ответ при нажатии кнопки отправить

[30/Oct/2021 20:10:36] "GET /apps/add_project HTTP/1.1" 200 32840
[30/Oct/2021 20:10:59] "POST /apps/add_project HTTP/1.1" 200 59
[30/Oct/2021 20:10:59] "GET /apps/add_project HTTP/1.1" 200 32840

Есть идеи, почему он не работает или как я могу отладить это?

Спасибо

Вернуться на верх