[Python-es] Busqueda compleja en BD

Eduardo Matus ematus en gmail.com
Jue Jun 28 16:51:41 CEST 2012


Tambien esta "raw"

resultados = Modelo.objects.raw("select * from foo")

lo que hace es que mapea las columnas a los campos del modelo, como si
fuera objetos POCO.

2012/6/28 Manuel Ignacio Franco Galeano <maigfrga en gmail.com>

> tambien esta la opcion de hacer con sql
> https://docs.djangoproject.com/en/dev/topics/db/sql/
>
>
>
> def my_custom_sql():
>     from django.db import connection, transaction
>     cursor = connection.cursor()
>
>     # Data modifying operation - commit required
>     cursor.execute("UPDATE bar SET foo = 1 WHERE baz = %s", [self.baz])
>     transaction.commit_unless_managed()
>
>     # Data retrieval operation - no commit required
>     cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])
>     row = cursor.fetchone()
>
>     return row
>
>
>
>
>
>
>
>
> El 28 de junio de 2012 16:39, Eduardo Matus <ematus en gmail.com> escribió:
>
> primero que nada, esto no es una "consulta compleja".
>> if seleccion == 'todo':
>>     qset = ( Q(Modelo__contains='opcion1') |
>> Q(Modelo__contains='opcion2'))
>>
>> 2012/6/28 gabriel fernandez <gabofer82 en gmail.com>
>>
>>>  Hola Lista!!!
>>>
>>> Agradezco a quién me pueda dar una mano!
>>>
>>> El problema es como sigue:
>>>
>>> Tengo una busqueda en la cual uso tres radio button:
>>>
>>> Opcion 1      Opcion 2   Opcion 1-2(Ambas)
>>>
>>> En la vista cuando voy a procesar el formulario tengo algo asi (luego de
>>> validar):
>>>
>>> seleccion = form.cleaned_data['opciones']
>>> qset = (
>>>            Q(Modelo__contains=seleccion)
>>> )
>>>
>>> El problema consiste en como hacer cuando se selecciona la Opcion 1-2 ya
>>> que engloba
>>> las dos opciones anteriores, hay algo que indique que quiero todo algo
>>> tipo:
>>>
>>> qset = (
>>>            Q(Modelo__contains='todo')
>>> )
>>>
>>> Uso el modulo Q para consultas complejas porque en realidad tengo mas de
>>> una seleccion
>>> como la anterior. Muestro una solamente porque el resto son iguales, y
>>> van tambien en la misma
>>> tupla de qset.
>>>
>>> Espero ser claro.
>>>
>>> Quedo a la espera de sus opiniones y ayuda. Muchas gracias!
>>> --
>>> Gabriel Fernández
>>> Desrrollador Web
>>> www.openweb.com.uy
>>>
>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> Eduardo Matus Coquelet
>> Ingeniero Civil Informático y Telecomunicaciones.
>> Celular: 77113825
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Eduardo Matus Coquelet
Ingeniero Civil Informático y Telecomunicaciones.
Celular: 77113825
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120628/1a86bcf2/attachment.html>


Más información sobre la lista de distribución Python-es