如何根据不同的请求设置不同的paginate_by?

时间:2019-04-01 19:21:29

标签: django

我正在使用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

0 个答案:

没有答案