Dynami c Обновление DOM прерывается Django Бесконечная нумерация страниц - PullRequest
0 голосов
/ 28 апреля 2020

Я использую 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
            }},
});
...