我正在使用Django分页,以便可以在网站上查看更多内容。下面的代码段是我尝试的。该页面首先显示出来,其中显示7篇文章,然后每个视图中显示6篇文章。单击更多按钮。
以下方法无效。如何设置不同的paginate_by
值?
views.py
class ArticleListView(ListView):
model = Article
paginate_by = 7
def get_template_names(self):
if self.request.is_ajax():
self.paginate_by = 6
return ['blogs/components/articles.html']
return ['blogs/index.html']
更新
我尝试了get_paginate_by
,但是当它在中间更改paginate_by
时,第一个请求的第7个项目显示为第二个请求的第一个项目,这意味着我得到了2个重复的项目。我认为是因为项目订单号在中间发生了变化。
def get_paginate_by(self, queryset):
if self.request.is_ajax():
self.paginate_by = 6
return self.paginate_by