Re: [Python-es] Importar módulos mediante un fichero __init__.py

2012-06-28 Por tema Alberto Chamorro
Muchas gracias por el aporte Joaquin.


2012/6/28 joaquin 

> Bueno, no se si sirve de algo, pero para los que les cueste el ingles,
> si quieren la documentacion en español aqui tienen la traduccion:
> http://docs.python.org.ar/tutorial/modules.html
>
> ___
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Busqueda compleja en BD

2012-06-28 Por tema Eduardo Matus
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 

> 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
> [email protected]
> 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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Busqueda compleja en BD

2012-06-28 Por tema César H . Roldán
Con el raw que te indicó Eduardo te debería servir, eso te mapea los
objetos y te retorna un queryset.

Ahora, lo mejor, me parece es que en lugar de dar opciones con radio,
pongas checkbox, eso te puede retornar una lista de valores para un campo,
y con eso simplemente haces un for y vas armando objetos Q, los cuales los
unís con | (or)

q = None
for op in opciones:
  if q is None:
q = Q(Modelo__contains=op)
  else:
q = q | Q(Modelo__contains=op)

Saludo

César

El 28 de junio de 2012 12:01, gabriel fernandezescribió:

> Ok, pero yo quiero hacer un queryset, por eso uso Q, porque la consulta
> evalua muchas opciones, no se si las formas son excluyentes, como seria
> raw en una consulta con Q?
>
> El 28 de junio de 2012 11:51, Eduardo Matus  escribió:
>
> 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 
>>
>>> 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  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 

>  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
> [email protected]
> 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
 [email protected]
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/


>>>
>>> ___
>>> Python-es mailing list
>>> [email protected]
>>> 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
>> [email protected]
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> Gabriel Fernández
> Desrrollador Web
> www.openweb.com.uy
>
>
>
> ___
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Busqueda compleja en BD

2012-06-28 Por tema César H . Roldán
Gabriel, si colocás la coma, tenes que tener cuidado, pero si, funciona.
Al llamar al filter, debés usar *q, no q solo porque es una tupla.
Al usar *q, estás pasandole a filter una lista de parámetros a utilizar.

Por ejemplo:

q = Q(nombre__startswith='Cesar')
# Aquí q es un Q object

q = q, Q(apellido__endswith='Roldan')
# en este momento q es una tupla

# La llamada en este caso deberías hacerla
Modelo.objects.filter(*q)

Saludo

César



El 28 de junio de 2012 12:48, gabriel fernandezescribió:

> César, si coloco "," (and) tambien los une?
>
>
> q = None
> for op in opciones:
>   if q is None:
> q = Q(Modelo__contains=op)
>   else:
> q = q , Q(Modelo__contains=op)   <===
>
>
> El 28 de junio de 2012 12:12, César H. Roldán escribió:
>
>> Con el raw que te indicó Eduardo te debería servir, eso te mapea los
>> objetos y te retorna un queryset.
>>
>> Ahora, lo mejor, me parece es que en lugar de dar opciones con radio,
>> pongas checkbox, eso te puede retornar una lista de valores para un campo,
>> y con eso simplemente haces un for y vas armando objetos Q, los cuales los
>> unís con | (or)
>>
>> q = None
>> for op in opciones:
>>   if q is None:
>> q = Q(Modelo__contains=op)
>>   else:
>> q = q | Q(Modelo__contains=op)
>>
>> Saludo
>>
>> César
>>
>> El 28 de junio de 2012 12:01, gabriel fernandezescribió:
>>
>> Ok, pero yo quiero hacer un queryset, por eso uso Q, porque la consulta
>>> evalua muchas opciones, no se si las formas son excluyentes, como seria
>>> raw en una consulta con Q?
>>>
>>> El 28 de junio de 2012 11:51, Eduardo Matus  escribió:
>>>
>>> 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 

> 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 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 
>>
>>>  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
>>> [email protected]
>>> 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
>> [email protected]
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> ___
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


 --
 Eduardo Matus Coquelet
 Ingeniero Civil Informático y Telecomunic