Есть ли способ извлекать данные из django шаблонов, кроме метода POST - PullRequest
0 голосов
/ 02 августа 2020

На одной из страниц своего сайта я пытаюсь создать две кнопки сохранить и удалить. Сохранить, как следует из названия, сохраняет данные, заполненные в форме в моей базе данных. Удалить удаляет эти данные. Я хочу получить доступ к этим двум кнопкам отдельно в моем файле views.py, но единственный известный мне способ обнаружить ввод пользователя - это проверить, если request.method == 'POST'. Но в случае кнопок сохранения и удаления будет выполнен запрос POST. Как я могу различать нажатие кнопки удаления и кнопки сохранения, чтобы я мог написать свой код для каждого из них?

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Используйте тег name в кнопке, чтобы различать операции POST.

Например:

<button name="delete">Delete</button>

И используйте в условии в представлении:

if "delete" in request.POST:
0 голосов
/ 03 августа 2020

Использовать две отдельные формы и отправлять их с помощью ajax кажется самым простым способом.

view.py

Создайте 2 представления. Один для добавления / обновления данных, а второй для удаления данных.

def submit_view(...):
    if request.POST:
        # add data (if form.is_valid, and more)

def delete_view(...):
    if request.POST:
        # delete data (if form.is_valid, and more)

шаблон

Теперь добавьте две отдельные формы в шаблон и отправьте их, используя ajax.

<form action="/submit" id="submit_form">
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="button" value="submit" id="submit_button">
</form> 

<form action="/delete" id="delete_form">
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="button" value="delete" id="delete_button">
</form> 

<script>
    $('#submit_button').on('click',function(){$('#submit_form').submit();});
    $('#delete_button').on('click',function(){$('#delete_form').submit();});    
</script>
...