【发布时间】:2013-08-02 14:06:17
【问题描述】:
我对 django 很陌生,我刚刚设法使用 CBV 创建了一个 ListView,我正试图在我的模板上显示它。为此,我使用 django 文档解决了以下问题:
{% if is_paginated %}
<div class="row">
<div class="span8 offset3">
<div class="pagination pagination-centered">
<ul>
{% if page_obj.has_previous %}
<li><a href="{% url 'myurl' %}?page={{ page_obj.previous_page_number }}">Prev</a></li>
{% endif %}
{% for i in paginator.page_range %}
{% if page_obj.has_next %}
<li><a href="{% url 'myurl' %}?page={{i}}">{{i}}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="{% url 'myurl' %}?page={{ page_obj.next_page_number }}">Next</a></li>
{% endif %}
</ul>
</div>
</div>
</div>
{% endif %}
现在,问题是,我正在使用 twitter 引导程序,他们推荐以下样式在对对象进行分页时“停用”当前页面:
<ul class="pagination">
<li class="disabled"><a href="#">«</a></li>
<li class="active"><a href="#">1</a></li>
</ul>
因此,在当前页面上,我想包含 <li class="active"> 以禁用该按钮 - 但我无法找到一种方法来使用我的模板上的上述分页来执行此操作。基本上,我需要以某种方式确定当前页面是否等于当前页码,然后将li class 应用于此。
希望提供有关如何解决此问题的线索。
感谢您的宝贵时间。
【问题讨论】:
-
我不明白,你不能用
{% if page_obj.has_previous %}class="active"{% else %}class="disabled"{% endif %}吗? -
@rednaw:我在发布问题之前尝试了您所说的 - 出于某种原因,所有页码似乎都是“活动的”并且没有禁用。我要么真的很愚蠢,要么很奇怪!
-
对于页码,您可能应该使用类似
{% if page.obj.current_page_number == i %}class="active"{% else %}class="disabled"{% endif %}' -
你能显示你正在使用的视图或文件吗,可能会有帮助。
-
@rednaw:
page.obj.current_page_number- 这是有效的吗?即它是否记录在案?我在任何地方都看不到这个。无论如何,我尝试使用它,它似乎不起作用。