2011-04-18 12 views
8

¿hay alguna manera de hacer que la visualización de la página de django pagination sea mejor? Seguí el [documento] [1] para crearlo, pero espero que haya una manera simple de organizar la visualización del número de página.Django Pagination Display Problema: todos los números de página aparecen

Actualmente, muestra todas las páginas, decir que tengo 10 páginas, entonces
prev 1 2 3 4 5 6 7 8 9 10 siguiente

Si hay 100, a continuación, se mostrará todo 100, que es bastante loco

¿Hay alguna manera simple de mostrarlo más corto?

ejemplo:

prev 1 2 3 ... ... 98, 99, 100 siguiente (67 es la página actual)

prev 1 2 3 ... 65 66 68 69 ... 100 siguiente

No tiene que parecerse a los ejemplos anteriores, pero simplemente no desea que muestre todos los números de página sin límites.

Al igual que el documento, creé mi paginación usando los códigos a continuación.

archivo de plantilla

{% if is_paginated %} 
<div id="pagination"> 
<ul> 
    {% if page_obj.has_previous %} 
     <li> <a href="?page={{page_obj.previous_page_number}}">Previous</a> </li> 
    {% else %} 
     <li> Previous</li> 
    {% endif %} 
    {% for page_number in paginator.num_pages|template_range %} 
     {% ifequal page_number page_obj.number %} 
      <li class="currentpage">{{page_number}}</li> 
     {% else %} 
      <li> <a href="?page={{page_number}}">{{page_number}}</a> </li> 
     {% endifequal %} 
    {% endfor %} 
    {% if page_obj.has_next %} 
     <li> <a href="?page={{page_obj.next_page_number}}">Next</a></li> 
    {% else %} 
     <li> Next </li> 
    {% endif %} 
</ul> 
</div> 
{% endif %} 

Views.py

news = News.active.all().order_by("-created_at") 
paginator = Paginator(news, 15) 

is_paged = False 
page = None 

try: 
    paginator.validate_number(currpage) 
except (EmptyPage, InvalidPage): 
    #return bad_or_missing(request, ("Invalid page number")) 
    currpage = paginator.num_pages 



is_paged = paginator.num_pages > 1 
page = paginator.page(currpage) 

ctx = RequestContext(request, { 
    'all_news_list' : page.object_list, 
    'is_paginated' : is_paged, 
    'page_obj' : page, 
    'paginator' : paginator, 
    'featured_categories' : featured_categories, 
}) 

response = render_to_response(template_name, context_instance=ctx) 
return response 

Gracias.

+0

has mirado la clave de administrador? paginador es muy bueno – Jerzyk

Respuesta

Cuestiones relacionadas