【问题标题】:How do I make my pagination show in Django template?如何在 Django 模板中显示分页?
【发布时间】:2020-09-13 01:46:59
【问题描述】:

大家好。我想在我的主页('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)

请问我做错了什么?

【问题讨论】:

    标签: python django django-views django-templates django-pagination


    【解决方案1】:

    你没有做错。但引导程序仅用于查看。因此,发送所有业务内容(可能是分页或其他任何内容)是一个很好的做法,它应该来自服务器。在我的建议中,最好使用 django 分页。 如果您有大量数据,您的应用程序在渲染如此大的数据时会变慢。

    【讨论】:

    • 我实际上是从数据库调用的。我在另一个项目中做了类似(或完全一样)的事情,而且效果很好。我不知道为什么这是一个例外。
    【解决方案2】:

    我通过从后端发布大约 6 篇文章而不是 3 篇(我最初有)来解决此问题,因为我只想每页显示 3 篇文章。保存并再次运行我的服务器后,分页工作正常。

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 2019-12-22
      • 2018-01-23
      • 2011-11-10
      相关资源
      最近更新 更多