AJAX POST фактически не отправляет данные POST с Django - PullRequest
0 голосов
/ 27 февраля 2020

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

Форма удерживается в модальном режиме:

<div class="modal-body">
    <div class='content-section'>
        <form method="POST" id="form{{ prod.id }}" class="showform" value="{{ prod.id }}" >
            <input type="hidden" value="{{ prod.id }}" name="prodid">
            {% csrf_token %}
            <fieldset class='form-group'>
                {{ form|crispy}}
            </fieldset>
        </form>
    </div>
</div>

<div class="modal-footer">
    <div class='form-group'>
        <button class="btn btn-outline-info submit-form" value={{prod.id}} form="form{{ prod.id }}"
            >Save
            To Profile</button>
    </div>
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>

Когда нажата кнопка отправки, она вызывает следующее AJAX:

 $(document).on('click', '.submit-form', function () {

        var thisButton = $(this)[0]
        var prodID = $(this).val();
        var form = $("form" + prodID);

        $.ajax({
            type: 'post',
            headers:{
                "X-CSRFToken": '{{ csrf_token }}'
            },
            url: '/ajax/validate_showadd/',
            dataType: 'json',
            contentType: 'json',
            data: {
                'form': form.serialize(),
                "prodID":prodID,
            },
            success: function (data) {
                console.log("sent")
            },
            error: function(data) {
                console.log("error")
            }
        });
        return false;
    });

Однако в пределах Django всякий раз, когда я пытаюсь получить доступ к любому из этих значений, он просто возвращает «Нет», а QueryDict для запроса POST пуст.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...