Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Kase en 14 Mayo 2011, 00:06 am



Título: parametros variables en modelos de django [python]
Publicado por: Kase en 14 Mayo 2011, 00:06 am
tengo un problema, tengo una base de datos de usuarios, y necesito un motor de busqueda altamente discriminante...

que por ejemplo sea posibile decir
selecionar todos los usuarios de las ciudades tampico,madero de edades de 15 a 20 y de sexo femenino..

y ala vez pueda hacer un seleccionar todos los usuarios de la ciudad de altamira

y obiamente con un metodo generico...

en php normalmente yo aria un constructor sql que optenga los datos de un formulario con checkboxs

pro estoy trabajando sobre python y django... y  django tiene un potente sistema  ORM  que por algun extraño motivo no permite hacer OR  tan facil

es posible hacer una consulta como
dic = {ciudad:tampico,edad_minima:15,edad_maxima:24,sexo:femenino}
usuario.objects.filter(**dic)
 (** explota el diccionario)


pero me crearia una consulta con puros ands....
la solucion que ofrece ese orm es mediante otra libreria llamada Q objects

en la que es posible  poner or's  con | y la consulta seria algo asi...

usuario.objects.get( Q(ciudad=Tampico)|Q(ciudad = Madero)  , edad_min=15...etc   )

el problema ahora es que  debo pasar  N datos por OR

datos que tengo en una lista = [tampico,madero....]
y que podria explotar   asi   *[Q(ciudad=x) for x in lista]
pero eso me separa cada Q(ciudad=x)  con  ,   y yo necesito una sepracion con |