【发布时间】:2026-01-15 02:30:01
【问题描述】:
我正在尝试使用django-endless-pagination 在滚动上实现连续分页。
页面的初始渲染工作正常。然而,一旦滚动,整个 html 页面内容将被加载到 never_page_template div 中,而不是 page_template 中所需的部分 html 内容。结果有点像看着一面镜子,镜子后面反射着另一面镜子。我相信返回的查询集是正确的,因为在不尝试使用“paginateOnScroll”时分页结果是正确的。
我的观点的相关部分如下。我使用的是 CreateView,因为我的 cmets 表单与分页 cmets 在同一页面上。
class MyIndex(CreateView):
form_class = CommentForm
template_name = 'my/index.html'
page_template = 'my/comments.html'
def get_context_data(self, **kwargs):
context = super(MyIndex, self).get_context_data(**kwargs)
context.update({
'comments': Comment.objects.order_by('-id').filter(parent=None),
'page_template': self.page_template,
})
return context
my/index.html 模板(主模板)的相关部分
<script src="{% static 'endless_pagination/js/endless-pagination.js' %}"></script>
<script type="text/javascript">
$.endlessPaginate({
paginateOnScroll: true
});
</script>
<div class="endless_page_template">
{% include page_template %}
</div>
my/cmets.html(page_template)的相关部分
{% load endless %}
{% paginate comments %}
{% for comment in comments %}
<span class="lead">{{ comment.name }}</span>
{{ comment.message}}
{% if not forloop.last %}
<hr />
{% endif %}
{% endfor %}
<br />
<div class="row-fluid">
<div class="span8 offset2 pagination-centered">
{% show_more %}
</div>
</div>
谢谢!
【问题讨论】:
-
TBH,从您的代码中我们看不到任何关于分页的信息。如果这确实是 django 和分页问题,那么首先包括您的视图部分,它处理分页。从这篇文章中我们看不到:1)分页,2)在您的 javascript 中,您指的是哪个页面或哪些对象应包含在下一页/批次中。您在模板中也有 show_more 标签,但它有什么作用?
-
@Odif Yltsaeb,感谢您对我的问题发表评论。我意识到我的错误,并通过澄清我正在使用 django-endless-pagination 应用程序更新了我的帖子。谢谢。
-
好吧,如果这是您可以提供的所有信息,那么我会说问题出在您的查询中,您返回所有对象而不是对象的分页列表......
-
感谢您的关注。但我相信我对自己的解释还不够清楚。我将很快重新编辑,以获得更好的清晰度。问题是所有页面的 html 都加载到分页 div 中。结果有点像看着一面镜子,镜子后面反射着另一面镜子。查询集似乎不是问题,而是应用程序引用了视图的模板,而不是为分页指定的部分模板。我希望这有帮助。再次感谢。
-
我面临同样的问题。 :(
标签: django infinite-scroll django-endless-pagination