Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 22, 2022 12:19:51

Aliaksandr
Зарегистрирован: 2022-12-22
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Пагинация

Здравствуйте!
Подскажите пожалуйста такой вопрос по пагинации.
Например всего 10 постов и две категории постов.
Делаю пагинацию например по 2 поста.

 class SportKostukovkaNews(DataMixin, ListView):
    paginate_by = 2
    model = News
    template_name = 'sport_kostukovka/news.html'
    context_object_name = 'posts'
    def get_context_data(self, *, object_list=None, **kwargs):
        context = super().get_context_data(**kwargs)
        c_def = self.get_user_context(title="Спортивные события")
        return dict(list(context.items()) + list(c_def.items()))
    def get_queryset(self):
        return News.objects.filter(is_published=True)

При выводе всех постов они выводятся в полном объеме, т.е. 10 шт., а не 2 шт. При этом количество страниц отображается правильно, т.е. 5 страниц. При переходе на определенную категорию пагинация отрабатывает правильно, т.е. выводится 2 поста и правильное количество страниц.
 <ul>
    {% if cat_selected == 0 %}
      <li class="selected">Все категории</li>
    {% else %}
      <li><a href="{% url 'news' %}">Все категории</a></li>
    {% endif %}
<!--Вывод категорий-->
    {% for c in cats %}
      {% if c.news__count > 0 %}
        {% if c.pk == cat_selected %}
          <li class="selected">{{c.name}}</li>
        {% else %}
          <li><a href="{{c.get_absolute_url}}">{{c.name}}</a></li>
        {% endif %}
      {% endif %}
    {% endfor %}
    {% if user.is_authenticated %}
      <li><a href="{% url 'add_page' %}">Добавить статью</a>
    {% endif %}
  </ul>

Подскажите пожалуйста в чем может быть причина?
Спасибо.

Офлайн

#2 Дек. 23, 2022 12:17:30

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Пагинация

 {% if is_paginated %}
  <nav aria-label="Page navigation example">
    <ul class="pagination justify-content-center">
      {% if page_obj.has_previous %}
        <li class="page-item">
          <a class="page-link" href="?page={{ page_obj.previous_page_number }}" aria-label="Previous">
            <span aria-hidden="true">&laquo;</span>
            <span class="sr-only">Previous</span>
          </a>
        </li>
      {% else %}
        <li class="page-item disabled">
          <a class="page-link" href="#" tabindex="-1" aria-label="Previous">
            <span aria-hidden="true">&laquo;</span>
            <span class="sr-only">Previous</span>
          </a>
        </li>
      {% endif %}
      {% for page_number in paginator.page_range %}
        {% if page_number == page_obj.number %}
          <li class="page-item active" aria-current="page">
            <a class="page-link" href="#">{{ page_number }}</a>
          </li>
        {% else %}
          <li class="page-item"><a class="page-link" href="?page={{ page_number }}">{{ page_number }}</a></li>
        {% endif %}
      {% endfor %}
      {% if page_obj.has_next %}
        <li class="page-item">
          <a class="page-link" href="?page={{ page_obj.next_page_number }}" aria-label="Next">
            <span aria-hidden="true">&raquo;</span>
            <span class="sr-only">Next</span>
          </a>
        </li>
      {% else %}
        <li class="page-item disabled">
          <a class="page-link" href="#" tabindex="-1" aria-label="Next">
            <span aria-hidden="true">&raquo;</span>
            <span class="sr-only">Next</span>
          </a>
        </li>
      {% endif %}
    </ul>
  </nav>
{% endif %}



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version