【问题标题】:Django - Pagination displayDjango - 分页显示
【发布时间】:2021-10-09 13:56:48
【问题描述】:

我在确定 django 的分页时遇到问题。如果我在第一页或最后一页,按照文档一切正常,但我有代码重复。我尝试过的所有事情最终都会遇到某种异常,主要是空页异常。我知道这是因为我的解决方案不涉及检查 page_obj.has_previous 还是 .has_next。我不知道如何解决这个问题,任何帮助将不胜感激。我将附上屏幕截图,以便您了解我的意思。

分页:

<div class="pagination justify-content-center pt-3">
      <nav aria-label='pagination'>
          <ul class="pagination step-links">
            {% 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>
                    </a>
                </li>
                <li class="page-item">
                    <a class='page-link'>
                    {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
                    </a>
                </li>
            {% endif %}

            {% if page_obj.has_next %}
                <li class="page-item">
                    <a class='page-link'>
                    {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
                    </a>
                </li>
                <li class="page-item">
                    <a class="page-link" href="?page={{ page_obj.next_page_number }}" aria-label='Next'>
                        <span aria-hidden='true'> &raquo; </span>
                    </a>
                </li>
            {% endif %}
            </ul>
      </nav>
    </div>

如您所见,“2 of 3”被重复了。我明白为什么它会在我的代码中重复,但是如果我删除其中一个列表项,那么{{ page_obj.number }} of {{ page_obj.paginator.num_pages }} 将不会显示在第一页或最后一页上。解决这个问题的最佳方法是什么?我自己也想不通

【问题讨论】:

    标签: django pagination


    【解决方案1】:

    代码(页面项类)必须在 if 块之外。这将起作用。

                {% 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>
                        </a>
                    </li>
                    
                {% endif %}
                   <li class="page-item">
                        <a class='page-link'>
                        {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
                        </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>
                        </a>
                    </li>
                {% endif %}
                
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 2015-09-01
      • 1970-01-01
      • 2022-09-21
      • 1970-01-01
      相关资源
      最近更新 更多