Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/01/2016, 10:10
eibi76
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Problemas con queryset y paginacion

Bueno pues el tema esta solucionado. Adjunto la vista y la paginacon del template para que pueda servirle a alguien en un futuro.

Las vista:

Código Python:
Ver original
  1. def buscar(request):
  2. errors = []
  3. if request.method == 'GET':
  4.     if not request.GET.get('fecha_inicial', '') or not request.GET.get('fecha_final', ''):
  5.         errors.append('Por favor introduce fecha inicio y fecha fin ambas son requeridas.')
  6.     else:
  7.         parque = request.GET.get('parque', '')
  8.         tipo = request.GET.get('tipo', '')
  9.         maquina = request.GET.get('maquina', '')
  10.         fallo = request.GET.get('fallo', '')
  11.         intervencion = request.GET.get('intervencion', '')
  12.         fecha_inicial = request.GET.get('fecha_inicial', '')
  13.         fecha_final = request.GET.get('fecha_final', '')
  14.         q1 = incidencias.objects.filter(Parque__icontains=parque)
  15.         q2 = q1.filter(Tipo__icontains=tipo)
  16.         q3 = q2.filter(Maquina__icontains=maquina)
  17.         q4 = q3.filter(Fallo__icontains=fallo)
  18.         q5 = q4.filter(Intervencion__icontains=intervencion)
  19.         queryset_list = q5.filter(Fecha__range=(fecha_inicial, fecha_final))
  20.  
  21.         paginator = Paginator(queryset_list, 4)
  22.  
  23.         parametros = request.GET.copy()
  24.         if parametros.has_key('pagina'):
  25.             del parametros['pagina']
  26.  
  27.         page = request.GET.get('pagina')
  28.         try:
  29.             queryset = paginator.page(page)
  30.         except PageNotAnInteger:
  31.  
  32.             queryset = paginator.page(1)
  33.         except EmptyPage:
  34.  
  35.             queryset = paginator.page(paginator.num_pages)
  36.  
  37.         context = {
  38.             "objetc_list": queryset,
  39.             "parametros": parametros,
  40.         }
  41.         return render(request, 'partes.html', context)
  42.     return render(request, 'formulario.html',
  43.     {'errors': errors})

Y el template:

Código HTML:
<ul class="pagination">
{% if objetc_list.has_previous %}
<li class="waves-effect"><a href="?pagina={{ objetc_list.previous_page_number }}{% if parametros.urlencode %}&{{ parametros.urlencode }}{% endif %}"><i class="material-icons">chevron_left</i></a></li>
{% endif %}

    <span class="current">Pagina {{ objetc_list.number }} de {{ objetc_list.paginator.num_pages }}</span>

{% if objetc_list.has_next %}
<li class="waves-effect"><a href="?pagina={{ objetc_list.next_page_number }}{% if parametros.urlencode %}&{{ parametros.urlencode }}{% endif %}"><i class="material-icons">chevron_right</i></a></li>
{% endif %}
Gracias razpeitia