我是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/)。如上所述,我需要以這種方式顯示頁面。 –