Django Paginator показывает заголовки постов, а не номера страниц, почему?
Я пытаюсь использовать Django Paginator, используя ListView, но пагинатор показывает название поста вместо номера страницы: Номер страницы заменяется на заголовок поста
 Как я могу это исправить?
вот мой код:
в views.py:
from django.shortcuts import render
from django.core.paginator import Paginator
from django.views.generic import ListView, DetailView
from .models import Post
# Create your views here.
# PostObject_list by using ListView
class PostList(ListView):
    model=Post
    paginate_by=20
    context_object_name='all_posts'
    ordering=['-created_at']
# allpost by using ListView
'''class AllPost(ListView):
    model=Post
    context_object_name='allpost'
    paginate_by=None
'''    
# Post_singl_object using DetailView
class PostDetail(DetailView):
    model=Post
 в шаблоне post_list.html :
 </div>
            <nav aria-label="Page navigation example">
                <ul class="pagination d-flex justify-content-center mt-1">
                    {% if all_posts.has_previous  %}
                    <li class="page-item "><a class="page-link" href="?page={{ all_posts.previous_page_number }}">Previous</a></li>
                    {% endif %}
                    {% for page in all_posts %}
                        <li class="page-item ">
                        
                             <a class="page-link" href="?page={{ page }}"><span>{{page}}</span></a>
                        </li>
                    {% endfor %}
                 
                    {% if all_posts.has_next %}
                         <li class="page-item"><a class="page-link" href="?page={{all_posts.previous_page_number }}">Next</a></li>
                    {% endif %}
                </ul>
            </nav>
            </div>
            <!-- Pagination-->
Спасибо!
 Вы должны получить доступ к paginator. В вашем случае page_obj.paginator. Попробуйте изменить ваш шаблон на:
{% for i in page_obj.paginator.page_range %}
<li class="page-item ">
   <a class="page-link" href="?page={{ page }}"><span>{{page}}</span></a>
</li>
{% endfor %}
Использование all_posts не будет работать, потому что это список объектов, а не объект страницы. all_posts не будет иметь атрибутов страницы, таких как paginator, has_previous, previous_page_number и т.д.
 В этом случае необходимо использовать page_obj, который автоматически добавляется ListView в контекст шаблона при пагинации. Получить диапазон страниц из шаблона можно с помощью page_obj.paginator.page_range:
{% for page in page_obj.paginator.page_range %}
<li class="page-item ">
   <a class="page-link" href="?page={{ page }}"><span>{{ page }}</span></a>
</li>
{% endfor %}
 Реализация для Previous и Next также не будет работать по той же причине. Чтобы решить эту проблему, необходимо также использовать page_obj, так что в целом:
{% if page_obj.has_previous  %}
    <li class="page-item "><a class="page-link" href="?page={{ page_obj.previous_page_number }}">Previous</a></li>
{% endif %}
{% for page in page_obj.paginator.page_range %}
    <li class="page-item ">
       <a class="page-link" href="?page={{ page }}"><span>{{ page }}</span></a>
    </li>
{% endfor %}
{% if page_obj.has_next %}
     <li class="page-item"><a class="page-link" href="?page={{ page_obj.next_page_number }}">Next</a></li>
{% endif %}