bootstrap - pagination offset django
Problema de visualización de la paginación de Django: aparecen todos los números de página (1)
¿Hay alguna forma de mejorar la visualización de la página de la paginación django? Seguí el [documento] [1] para crearlo, pero espero que haya una manera simple de organizar la visualización del número de página.
Actualmente, muestra todas las páginas, digamos que tengo 10 páginas, luego
prev 1 2 3 4 5 6 7 8 9 10 siguiente
Si hay 100, entonces mostrará 100, lo cual es bastante loco.
¿Hay alguna manera simple de mostrarlo más corto?
ejemplo:
prev 1 2 3 ... 67 ... 98, 99, 100 siguiente (67 es la página actual)
prev 1 2 3 ... 65 66 67 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.
He utilizado la " Etiqueta de Paginador " con éxito para lograr el estilo de paginación que está buscando (a menudo llamado paginación "al estilo de Digg"). El uso se explica en el artículo " Una receta para la paginación en Django ".