【问题标题】:django paginator is not working but the link is working manuallydjango paginator 不工作,但链接手动工作
【发布时间】:2021-05-14 13:28:04
【问题描述】:

我有一个按类别表示文章的页面。我正在尝试为此页面制作分页器,但在我的网页中没有看到分页器。但是,当我手动输入链接时,它可以工作。我不知道我在这里错过了什么...... #我的 HTML 页面

    <div class="blog-pagination">
          <ul class="justify-content-center">
            {% if cat_articles.has_previous %}
              <li><a
                  href="{% url 'website:category' cat_articles.previous_page_number %}">
                  <i class="icofont-rounded-left"
                     ></i></a></li>
            {% endif %}
            <li><a href="#">1</a></li>
            <li class="#"><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            {% if cat_articles.has_next %}
          <li><a href="{% url 'website:category' cat_articles.next_page_number %}">
              <i class="icofont-rounded-right"
                 ></i></a></li>
          {% endif %}
          </ul>
        </div>

      </div><!-- End blog entries list -->

#我的观点

def category(request, slug, page=1):
cat = get_object_or_404(Category, slug=slug, status=True)
articles_cat = cat.articles.filter(status='Published')
paginator_cat = Paginator(articles_cat, 1)
cat_articles = paginator_cat.get_page(page)
context = {
    "category": cat_articles
}
return render(request, 'website/category.html', context)

【问题讨论】:

    标签: django django-models django-views django-templates django-urls


    【解决方案1】:

    @Amin Etemadi - 我的建议是使用 ListView。它提供了一种添加分页的简单方法,方法是添加paginate_by=10 之类的内容。而已。如果您需要获取基于特定类别的文章,那么只需覆盖 ListView 的get_queryset() 并将您的逻辑放在那里即可。在模板中你可以做这样的事情

    {% if is_paginated %}
                            <div class="pagination">
                                <ul >
    
                                    {% 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>
                                    {% endif %}
    
                                    <li class="page-item active">
                                        <a class="page-link" href="?page={{ page_obj.number }}">{{ page_obj.number }}
                                            <span class="sr-only">(current)</span>
                                        </a>
                                    </li>
    
                                    {% 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>
                                    {% endif %}
                                </ul>
                            </div>
                        {% endif %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2018-05-06
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多