greathector7

ARGS KWARGS

Sep 25th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.25 KB | None | 0 0
  1. args, kwargs
  2.  
  3. URL:
  4.     path('nacimientos_detalle/<int:pk>/',
  5.          login_required(views.NacimientosDetail.as_view()),
  6.          name='nacimientos_detalle'),
  7.  
  8.  
  9.  
  10. VIEW:
  11. class NacimientosView(ListView):
  12.     """Vista partidas de nacimientos pero filtrados desde un formulario"""
  13.     model = PartidaNacimiento
  14.     template_name = 'rcivil/nacimientos_listado.html'
  15.     paginate_by = 10
  16.     ordering = 'ano', 'tomo', 'folio'
  17.  
  18.     def get_context_data(self, **kwargs):
  19.         # este context data permite trabajar la paginacion
  20.         context = super(NacimientosView, self).get_context_data(**kwargs)
  21.         # copiamos el get para la paginacion
  22.         parametros = self.request.GET.copy()
  23.         if 'page' in parametros:
  24.             del parametros['page']
  25.         context['parametros'] = parametros
  26.         return context
  27.  
  28.     def get_queryset(self):
  29.         # la funcion super() permite obtener el queryset del formulario
  30.         # con este if selecciono el metodo por el cual me llega la info
  31.  
  32.         if self.request.method == 'GET':
  33.             filtros4 = {}
  34.             # tomamos cada una de las variables y las colocamos en el
  35.             # diccionario filtros4 para filtrar al final con lo que llego
  36.             if self.request.GET.get('tomo'):
  37.                 filtros4.update({"tomo__icontains":
  38.                                 self.request.GET.get('tomo')})
  39.             if self.request.GET.get('folio'):
  40.                 filtros4.update({"folio__icontains":
  41.                                 self.request.GET.get('folio')})
  42.             if self.request.GET.get('ano'):
  43.                 filtros4.update({"ano":
  44.                                 self.request.GET.get('ano')})
  45.             if self.request.GET.get('acta'):
  46.                 filtros4.update({"acta":
  47.                                 self.request.GET.get('acta')})
  48.             if self.request.GET.get('letra'):
  49.                 filtros4.update({"letra":
  50.                                 self.request.GET.get('letra')})
  51.             if self.request.GET.get('fechapre'):
  52.                 filtros4.update({"fechapre":
  53.                                 self.request.GET.get('letra')})
  54.             if self.request.GET.get('cedptte'):
  55.                 filtros4.update({"cedptte__icontains":
  56.                                 self.request.GET.get('cedptte')})
  57.             if self.request.GET.get('nomptte'):
  58.                 filtros4.update({"nomptte__icontains":
  59.                                 self.request.GET.get('nomptte')})
  60.             if self.request.GET.get('cedcony'):
  61.                 filtros4.update({"cedcony__icontains":
  62.                                 self.request.GET.get('cedcony')})
  63.             if self.request.GET.get('nomcony'):
  64.                 filtros4.update({"nomcony__icontains":
  65.                                 self.request.GET.get('nomcony')})
  66.             if self.request.GET.get('nombptdo'):
  67.                 filtros4.update({"nombptdo__icontains":
  68.                                 self.request.GET.get('nombptdo')})
  69.             qs = super().get_queryset()
  70.             logging.info('Entrada a parametros')
  71.             logging.debug(filtros4)
  72.             # devolvemos el queryset filtrandolo con filtros4 y ordenandolo
  73.         return qs.filter(**filtros4).order_by('ano', 'tomo', 'folio')
Advertisement
Add Comment
Please, Sign In to add comment