Как установить разные paginate_by в зависимости от разных запросов?

#django

#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
  

Комментарии:

1. return self.paginate_by.per работает ли эта строка или так и должно быть return self.paginate_by ?

2. да, вы правы с дубликатами, и что вы хотели?

3. @ruddra Извините, per была опечатка. Это должно было быть self.paginate_by и все еще не работает