Как показать количество элементов страницы в django pagination для CBV?

Я пытаюсь понять, как показать что-то вроде "Показ 1-10 из 52" с использованием нумерации django в моих шаблонах.

Я использую CBV для моего приложения.

Это то, что я сделал

В моих views.py:

class viewbloglistview(LoginRequiredMixin,ListView):
    model = Blog
    paginate_by = 6

И в моем шаблоне:

{% if is_paginated %}
      <ul class="pagination">
       {% if page_obj.has_previous %}
           <li><a href="?page={{ page_obj.previous_page_number }}">Previous</a></li>
       {% else %}
            <li class="disabled"><span>Previous</span></li>
       {% endif %}
       {% for i in paginator.page_range %}
         {% if page_obj.number == i %}
             <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
         {% else %}
              <li><a href="?page={{ i }}">{{ i }}</a></li>
         {% endif %}
       {% endfor %}
          {% if page_obj.has_next %}
             <li><a href="?page={{ page_obj.next_page_number }}">Next</a></li>
          {% else %}
               <li class="disabled"><span>Next</span></li>
       {% endif %}
      </ul>
{% endif %}

Любые идеи, кто-нибудь, как это может быть достигнуто в Django?

Спасибо

1 ответ

Вы можете получить счетчик вашего набора запросов и добавить его в свой существующий контекст, как это в вашем views.py:

def get_context_data(self, *, object_list=None, **kwargs):
    context = super().get_context_data(**kwargs)
    context['total'] = self.get_queryset().count
    return context
Другие вопросы по тегам