Hola como va, tengo el siguiente problema, tengo que paginar por ejemplo "socios" de un sitio, por ejemplo tengo que mostrar 10 por pagina, y debo mostrar el indice como maximo con 10 paginas, estoy haciendo todo esto correctamente con el codigo que voy a pegar ahora despues, el problema esta en cuando supero las 10 paginas como hago para mover el indice por ejemplo si estoy parado en la pagina 6, que me muestre como inicio la 2 y como final la 11, se entiende?
Pego el codigo que tengo:
en la views tengo la vista de socios:
Código Python:
Ver originaldef socios(request):
copia = {}
sociosAux = Socio.objects.all().order_by("nombre")[:10]
socios = []
for s in sociosAux:
soc = {'id':s.id, 'nombre':s.nombre, 'logo':str(s.logo).replace("\\","/"), 'rubro':str(s.rubro),\ 'direccion':s.direccion, 'telefono':s.telefono, 'web':s.web, 'mail':s.mail}
socios.append(soc)
socios_per_page = 10
cant_socios = len ( Socio.objects.all() )
cant_pages = math.ceil( float(cant_socios) / float( socios_per_page ) )
total_pages_mostrar = 10
if cant_pages > total_pages_mostrar:
copia['cant_pages_nums'] = range( 1, total_pages_mostrar + 1 )
else:
copia['cant_pages_nums'] = range( 1, int( cant_pages )+1 )
copia['socios'] = socios
copia['cant_pages'] = int( cant_pages )
copia['cantidad_socios'] = cant_socios
return render_to_response("socios.html",copia)
en socios.html tengo esto:
Código HTML:
Ver original{% if cant_pages > 1 %}
{% for i in cant_pages_nums %}
{% if i == 1 %}
<li><a class="num_page activo" data-id="{{i}}" href="#">{{i}}
</a></li> {% else %}
<li><a class="num_page" data-id="{{i}}" href="#">{{i}}
</a></li> {% endif %}
{% endfor %}
<!--<li class="ultimo"><a href="#">Fin</a></li>-->
</div> <!--termina paginacion--> {% endif %}
en el document.ready de socios.html tengo esto:
Código Javascript
:
Ver original//PAGINAR SOCIOS
$(".num_page").on("click", function(e){
e.preventDefault();
//ESTILO A PAGINACION
$(".num_page").each(function(){
$(this).removeClass( "activo" );
});
//$(this).addClass( "activo" );
var id = $(this).attr("data-id");
$("a.num_page[data-id ="+ id+"]").addClass("activo");
var toData = {
'page' : $(this).attr("data-id")
};
$.ajax({
type: "GET",
url: "/iab/paginar-socios",
data: toData,
}).done(function( msg ) {
$("#contSocios").html(msg);
});
});//termina .num_page.click
Por ahora funciona bien la paginacion, pero quiero limitar la cantidad de paginas a mostrar en el indice, y a medida que se vaya moviendo, que vaya cambiando el indice...
Espero alguna sugerencia, gracias.