Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/06/2013, 15:29
josepbidegain
 
Fecha de Ingreso: enero-2013
Ubicación: Montevideo
Mensajes: 28
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Paginación con python/django y html

Gracias por el aporte, justo lo resolvi antes de leer tu ayuda, dejo mi solución. Lo hice mediante js simplemente cambiando el indice a medida que me iba moviendo, el resto de traer los datos con ajax ya lo tenia hecho. El valor de cant_pages lo cargo en un div oculto porque no sabia como acceder a un dato devuelto desde django desde javascript.
Código HTML:
Ver original
  1. <div id="cant_pages" data-num="{{cant_pages}}" style="display:none;"></div>

Código Javascript:
Ver original
  1. //PAGINAR SOCIOS
  2.     $("body").on("click",".num_page", function(e){     
  3.         e.preventDefault();
  4.        
  5.     var total = $("#cant_pages").attr("data-num");
  6.     var current = parseInt( $(this).attr("data-id") );
  7.     var adj = 2; //cantidad paginas a mostrar adjacentes del actual.
  8.     var inicio ="";
  9.     var fin = "";
  10.     var html ="";
  11.    
  12.     if ( (current - adj) < 1 && total < 5 ){
  13.          inicio = 1;
  14.          fin = total;    
  15.     }
  16.     else if ( (current - adj) < 1 && total > 5 ){
  17.          inicio = 1;
  18.          fin = 5;        
  19.     }
  20.     else if ( (current + adj) > total ){
  21.         fin = total;
  22.         current = current - ( (current+adj) - total );
  23.         inicio = current - adj;
  24.     }
  25.     else{
  26.         inicio = current - adj;
  27.         fin = current + adj;
  28.     }  
  29.  
  30.     if (inicio != 1){
  31.         html+='<li><a class="num_page" data-id="1" href="#"><|</a></li>';
  32.     }
  33.    
  34.     for (var i= inicio; i <= fin; i++){
  35.        
  36.         if (i == current){
  37.             html+='<li><a class="num_page activo" data-id="'+i+'" href="#">'+i+'</a></li>';
  38.         }else{         
  39.             html+='<li><a class="num_page" data-id="'+i+'" href="#">'+i+'</a></li>';
  40.         }      
  41.     }
  42.     if (fin != total){
  43.         html+='<li><a class="num_page" data-id="'+total+'" href="#">|></a></li>';
  44.     }
  45.     $(".pag").html(html);