2011-11-21 2 views
0

장고를 처음 사용했습니다. 121 122 이전 120 ... 320Django - 장고 Pagination 1.3

또는

이전 1 2 3 4 5 6 : 나는 장고가 제공하는 간단한 페이지 매김을 사용하고 있지만이 같은 페이지를 쪽수를 매기다 필요 123 마지막

장고 1.3에서 이것을 재사용 할 준비가 된 코드가 있습니까?

+0

싶은 정확히 무엇을? – juliomalegria

+0

답장을 보내 주셔서 감사합니다. @ julio.alegria. Django Pagination (https://docs.djangoproject.com/en/1.3/topics/pagination/)보다 더 정교한 것이 필요합니다. 위에 설명했듯이 나는 그런 식으로 페이지를 보여줄 필요가있다. –

답변

1

하자 supose 우리는 볼 수 있습니다.

Prev 1 2 3 4 5 6 ... 320 

PAG에 같은 목록을 템플릿에 보낼 수 있습니다 : 당신이 얻을 필요가,

pg = int(pg) 
objects = range(320) 
p = Paginator(objects, 15) 
page = p.page(pg) 

음 : 그럼 우리의 검색어 (또는 객체)를 얻을 매기기 객체를 생성하는 코드의 비트를 필요 :

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에을 보낼 수 있습니다. 이 솔루션은 동일

Prev 120 121 122 123 124 Last 

에 대한

<ul> 
{% for label, npag in pags %} 
    <li> 
    {%if npag %} <a href="asjflasdjf/{{npag}"}>{%endif%} 
    label 
    {%if npag %} </a> {%endif%} 
    </li> 
{% endfor %} 
</ul> 

: 그리고 같은 것으로 렌더링합니다. CSS로 조금 꾸미면 얻을 수 있습니다.

또한, 예를 들어, 당신은 굵은 스타일로 그것을 얻기 위해 현재 페이지 클래스를 할당 할 수

{%if npag %} 
    <a href="asjflasdjf/{{npag}"  
     {% if npag == pg %} class="bold-style" {%endif%} 
    }> 
{%endif%} 
1

This is 원하는 것을 선택하십시오. 이 순간에 찾고있는

페이지는 페이지 번호입니다
dev showPage(request,pg): 

:

+0

또는 [this] (http://www.tummy.com/Community/Articles/django-pagination/). 추가 패키지없이. –