В итоге я решил пойти с AJAX через jQuery.ajax .
Причина в том, что семантически у меня нет даже форм - у меня есть кнопки.
Следовательно, jQuery - более простое решение, так как позволяет хранить логику в одном месте (в отличие от разбрасывания ее по HTML).и JS).
Я назначил row
класс для каждой семантической строки и поместил соответствующие идентификаторы базы данных в HTML5 data
атрибут , называемый data-row-id
для каждой строки.
<div class="row" data-item-id="{{ product.id }}">
<!-- ... --->
<a href="#" class="delete-btn"><img src="/img/delete.png" alt="Delete"></a>
</div>
Тогда у меня есть кое-что в строках
$('.delete-btn').click(function() {
var row = $(this).closest('.row');
var id = row.data('item-id');
$.ajax({
url: id + '/delete/',
type: 'POST'
});
row.fadeOut().slideUp();
return false;
}
в моем $()
обработчике загрузки.
Это решение прекрасно масштабируется по всей базе кода, потому что вам нужно только установить row
class и data-item-id
attribute и кнопки будут «просто работать».