如何在 Django 模板中显示分页?

How do I make my pagination show in Django template?

大家好。我想为我的主页添加分页 ('index.html')。我按照 Django 的文档进行分页,但我添加了 Bootstrap 的分页以提供漂亮的外观。

但是,它确实显示在我的主页上。

这里是 index.html 代码

<div class="row">
            <div class="col-md-12">
                {% if post.has_other_pages %}
                    <ul class="pagination">
                        {% if post.has_previous%}
                            <li class="page-item">
                                <a href="?page={{post.previous_page_number}}" class="page-link">&laquo;
                                </a>
                            </li>
                        {% else %}
                            <li class="page-item disabled">
                                <a class="page-link">&laquo;</a>
                            </li>
                        {% endif %}
                        {% for i in post.paginator.page_range %}
                            {% if post.number == i %}
                                <li class="page-item active">
                                    <a class="page-link">{{i}}</a>
                                </li>
                            {% else %}
                                <li class="page-item">
                                    <a href="?page={{i}}"class="page-link">{{i}}</a>
                                </li>
                            {% endif %}
                        {% endfor %}
                        {% if post.has_next%}
                            <li class="page-item">
                                <a href="?page={{post.next_page_number}}" class="page-link">&raquo;
                                </a>
                            </li>
                        {% else %}
                            <li class="page-item disabled">
                                <a class="page-link">&raquo;</a>
                            </li>
                        {% endif %}
                    </ul>
                {% endif %}
            </div>

    </div>

这是包含分页的部分。 这是我的 views.index

def index(request):
    post = Post.objects.all()
    paginator = Paginator(post, 3)
    page = request.GET.get('page')
    page_post = paginator.get_page(page)

    context = {
        'post': page_post
    }
    return render(request, 'blog/index.html', context)

请问我做错了什么?

你没有做错。但 bootstrap 仅供查看。所以发送所有业务内容是一个很好的做法,可以是分页或任何东西,它应该来自服务器。在我的建议中,最好使用 django 分页。 如果您有大量数据,您的应用程序在呈现如此大的数据时会变慢。

我通过从后端发布大约 6 篇文章而不是三篇(我最初有)来解决这个问题,因为我想每页只显示 3 篇文章。再次保存它和 运行 我的服务器时,分页有效。