我是Django的新手。我使用的简单分页该Django提供,但我需要分页页这样的:Django - 在Django中分页1.3
上一个1 2 3 4 5 6 ... 320
或者
上一页120 121 123最后
有一些代码可以在Django 1.3中重复使用来实现这个目标吗?
我是Django的新手。我使用的简单分页该Django提供,但我需要分页页这样的:Django - 在Django中分页1.3
上一个1 2 3 4 5 6 ... 320
或者
上一页120 121 123最后
有一些代码可以在Django 1.3中重复使用来实现这个目标吗?
让我们supose我们有一个观点:
dev showPage(request,pg):
其中PG页码您正在寻找在这一刻。然后,我们需要一些代码来获取查询集(或物体),并创建分页程序对象:
pg = int(pg)
objects = range(320)
p = Paginator(objects, 15)
page = p.page(pg)
嗯,那你需要得到:
Prev 1 2 3 4 5 6 ... 320
被发送到模板像PAG的列表:
pags = [] #var to be sent to template
if pg-1 in p.page_range: pags.append(('Prev', p.page(pg - 1) ,))
for n in range(pg-2, pg+2):
if n in p.page_range: pags.append((n, p.page(pg - 2) ,))
if p.end_index() not in range(pg-2, pg+2):
pags.append(('...', None ,))
pags.append((p.end_index(), p.end_index(),))
现在送的PAG到您的模板。和渲染成类似:
<ul>
{% for label, npag in pags %}
<li>
{%if npag %} <a href="asjflasdjf/{{npag}"}>{%endif%}
label
{%if npag %} </a> {%endif%}
</li>
{% endfor %}
</ul>
为
Prev 120 121 122 123 124 Last
的解决方案是一样的。用CSS装饰一下,然后你就可以得到它。
另外,例如,可以为了分配当前页面类来获得它大胆的风格:
{%if npag %}
<a href="asjflasdjf/{{npag}"
{% if npag == pg %} class="bold-style" {%endif%}
}>
{%endif%}
什么正是你想做什么? – juliomalegria
感谢您的回复@ julio.alegria。我需要比Django分页更详细的内容(https://docs.djangoproject.com/en/1.3/topics/pagination/)。如上所述,我需要以这种方式显示页面。 –