#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
и все еще не работает