Два представления в одной форме и ajax в Django - PullRequest
1 голос
/ 23 сентября 2019

Это третий раз, когда я задаю этот вопрос, к сожалению, нет ни одного эксперта, который мог бы ответить на этот простой вопрос.

Без кода javascript метод в view.py отлично работает как для сохранения, так и для вычисления.за одну форму.Однако, когда я использую ajax, он не работает (из-за e.preventDefault();), вот мой код:

html

<form method="post" id="idForm" name="fmr1" action = "/myproject/save/" 
enctype="multipart/form-data">
....
<input type="submit" name="save" value="Save">
<input type="submit" name="calc" value="Calculate">
</form>

js

$("#idForm").submit(function(e) {
    e.preventDefault(); // avoid to execute the actual submit of the form.
    var frm = $('#idForm');

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

});

просмотров

if request.method == 'POST' and 'calc' in request.POST:
    print("runs calc form")
    mylist= [5]
    return JsonResponse({'mylist':mylist})

Вопрос

Теперь сложность в "calc" по запросу.POST ", поэтому он не запускается, когда я добавляю ajax или id =" idForm "в форму.

Мне нужно" 'calc' в request.POST ", так как я должен также запустить" save ".

Оба должны будут запускаться внутри одного метода в представлениях.

В чем может быть причина того, что javascript (e.preventDefault();) мешает его правильной работе?

Как исправитьэто?

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