动态DOM更新打破了Django Endless Pagination

时间:2020-04-28 16:24:22

标签: django python-3.x pagination django-templates django-pagination

我正在使用Django EL(Endless) Pagination在我的网站上实现延迟加载的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
            }},
});

0 个答案:

没有答案
相关问题