greathector7

generar filtros dinamicamente

May 1st, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. class NacimientosView(ListView):
  2.     """Vista partidas de nacimientos pero filtrados desde un formulario"""
  3.     # queryset = PartidaNacimiento.objects.filter(folio=457).filter(ano=1980)
  4.     model = PartidaNacimiento
  5.     template_name = 'rcivil/nacimientos_listado.html'
  6.     paginate_by = 10
  7.     ordering = 'ano'
  8.  
  9.     def get_queryset(self):
  10.  
  11.         # la funcion super() permite obtener el queryset del formulario
  12.         queryset = super().get_queryset()
  13.         # con este if selecciono el metodo por el cual me llega la info
  14.         if self.request.method == 'GET':
  15.             print('REQUEST: ' + str(self.request.GET))
  16.             # esta es la comprehensive list que permite generar
  17.             # los campos dinamicamente para obtener los que si tienen valores
  18.             filtros = {campo:self.request.GET.get(campo) for campo in self.request.GET.keys() if campo in CAMPOS_PERMITIDOS and self.request.GET.get(campo) !=''}
  19.             # con este imprimo en la consola el valor generaado
  20.             print('  FILTROS= ' + str(filtros))
  21.             #aplico los filtros al queryset de esta forma
  22.             queryset = queryset.filter(**filtros)
  23.         return queryset
Advertisement
Add Comment
Please, Sign In to add comment