Django удаление записи с помощью ajax исчезает только после ручного обновления
Я хочу удалять записи из своей таблицы с помощью Ajax и диалогового окна Sweetalert2. Однако, когда я нажимаю кнопку удаления и подтверждаю удаление, элемент удаляется из модального диалога, но все еще виден в таблице. Элемент исчезает только после ручного обновления страницы.
Я уже просмотрел много вопросов и видео, но мне кажется, что мне не хватает некоторых базовых знаний для определения моей проблемы.
html
views.py
def delete_record(request, id):
obj = get_object_or_404(Dog, id=id)
if request.method == 'POST':
obj.delete()
return JsonResponse({})
urls.py
path('dog/delete_dog/<int:id>', views.delete_record, name='delete_record'),
Я также попробовал следующую функцию, но она ничего не изменила.iews.py
#views.py
def delete_record(request, id):
obj = get_object_or_404(Dog, id=id)
if request.method == 'POST':
obj.delete()
return redirect('dogs')
def dogs(request):
dogs = Dog.objects.all()
if request.user.is_authenticated:
return render(request, 'dog/dogs.html', {'dogs':dogs})
else:
return login_user(request)
#urls.py
path('dog/dogs/', views.dogs, name='dogs'),
Сначала вам нужно присвоить id вашим строкам.
{% for dog in dogs %}
<tr id="{{dog.id}}">
<td>{{ dog.dog_name }}</td>
<td>{{ dog.gender }}</td>
Затем вы можете удалить строку после успешного ajax-вызова.
$.ajax({
type: "POST",
headers:{'X-CSRFToken':csrftoken},
url: $(this).attr('data-url'),
dataType: 'json',
success: (data) => {
document.getElementById(this.parent.id).remove()
},
error: (error) => {
console.log(error);
}
});
Это приведет к обновлению таблицы и удалению элемента dom.
Вот ваш полный обновленный код.-: