Django удалить объект с помощью AJAX или JavaScript с подтверждением - PullRequest
0 голосов
/ 09 апреля 2019

привет. Я хочу удалить объект Django, используя AJAX или JavaScript с сообщением о подтверждении при нажатии кнопки «Удалить», но я не знаю, как выполнить запрос AJAX.

views.py

def delete(request,id):
    try:
        inta = work.objects.get(pk=id)
        inta.delete()
    except:
        pass
    return HttpResponseRedirect(reverse('home'))

urls.py

url(r'^delete/(?P<id>\d+)/$',views.delete, name='delete')

html:

{& for app in apps &}
<p>{{ app.item0 }}</p>
<p>{{ app.item1 }}</p>
<p>{{ app.item2 }}</p>
<button  data-object-id="{{ app.id }}">remove</button>
{% endfor %}

$('button').on('click', function(){
    var confirmation = confirm("are you sure you want to remove the item?");
    if (confirmation) {
     // execute ajax
        alert('removed');
    }
})

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Существует более удобный способ написания кода AJAX:

$('button').on('click', function(){
    let confirmation = confirm("are you sure you want to remove the item?");
    if (confirmation) {
        let object_id = $(this).attr('data-object-id');
        let url = `delete/${object_id}/`;
        $.ajax({
           url: "example.html/my/example",
           data: {
               'csrfmiddlewaretoken': "{{ csrf_token }}"
           },
           type: "DELETE",
           dataType: "json"
         }).done(
              function(){alert("Deleted");}
            ).fail(
              function(){alert("Error");}
            ) 
       });
    }
})
0 голосов
/ 09 апреля 2019

Предполагая, что

  • В представлении delete исключен запрос DELETE
  • Код JavaScript содержится в HTML


$('button').on('click', function(){
    let confirmation = confirm("are you sure you want to remove the item?");
    if (confirmation) {
        let object_id = $(this).attr('data-object-id');
        let url = `delete/${object_id}/`;
        $.delete(url, {csrfmiddlewaretoken: '{{ csrf_token }}'}, function(){
                alert('removed');
        })
    }
})

Если код javascript находится в отдельном файле, вам нужно будет найти другой способ получить csrf-token, возможно, из скрытого ввода где-то на странице.

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