Как обновить HTML-страницу, используя ajax в Django? - PullRequest
1 голос
/ 21 сентября 2019

Я знаю, что этот вопрос задавался несколько раз, но я не могу найти решение.

Я не могу соединить вывод метода в представлениях с html-страницей.

представления

def save_form(request):
    if request.method == 'POST' and 'save' in request.POST:
        lsection = [5]
        print("calculate method runs...")
        return JsonResponse({'lsection':lsection})

«рассчитать выполнение метода ...» печатается только в том случае, если я не использую ajax.

html

<form method="post" name="nameForm" id="idForm" 
action = "/project/save/" enctype="multipart/form-data">
    {% csrf_token %}

...

<input type="submit" name="save" value="Save">
</form>

ajax

var frm = $('#idForm');
frm.submit(function (e) {

    e.preventDefault();

    $.ajax({
        type: frm.attr('save_form'),
        url: frm.attr('/project/save/'),
        //data: frm.serialize(), // I tried this as well
        data: {},
        success: function (data) {
            alert(data)
        },
        error: function (data) {
            alert("ajax fails")
        },
    });
});

Вопрос:

Я не получаю lsection list на html, я пробую alert (data) Я получаю пустой html,Как я могу получить lsection на html?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Вам нужны значения атрибута:

type: frm.attr('method'),
url: frm.attr('action'),

Правильный код:

$.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function (data) {
            alert(data)
        },
        error: function (data) {
            alert("ajax fails")
        }
    });

.attr

0 голосов
/ 21 сентября 2019

При получении ответа JSON в ajax success вы использовали данные.

, чтобы показать lsection.

alert(data.lsection) 

обновить уведомление, как указано выше

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