Я использую Django EL (бесконечная) нумерация страниц , чтобы добавить на свой веб-сайт лениво загружаемую нумерацию в стиле Twitter. Все работает хорошо Но я бы хотел, чтобы мои пользователи могли динамически удалять некоторые постраничные результаты одним нажатием кнопки. Поэтому я добавил этот ajax вызов:
$("main").on("click", ".close", function() {
let id = $(this).attr("id");
$(this).closest('div.col-sm-12').remove();
$.ajax({
url: urltomydeleteview,
timeout: 0,
method: 'POST',
})
.done((res) => {
... other DOM manipulations ....
})
});
Это, конечно, создает ошибку: если пользователь удаляет несколько элементов и достигает нижней части страницы, ленивая пагинация вызывается с неправильными параметрами (например, 'page = 2', но эта страница может больше не существовать), и я получил 404. Как я могу сказать Django EL, что мой набор запросов изменился без перезагрузки моей страницы?
РЕДАКТИРОВАТЬ:
Я реализовал этот ужасный хак, который перезагружает страницу, только если какой-то контент был удален, и если пользователь пытается получить другую страницу:
$('.endless_more').attr('href', "reload") <-- added this after .done in the ajax call
И добавил это при создании экземпляра пагинации EL:
$.endlessPaginate({
paginateOnScroll: true,
contentSelector: '.endless_content_wrapper',
onClick: function(context) {
if (context.url === 'reload') {
location.reload();
return false
}},
});