Consultas complejas Django (Forma simple)


Saludos, en esta oportunidad vamos a construir consultas complejas en Django, pero de una manera simple, para ello usaremos el objecto Q que según el manual oficial se define como:

“A Q object (django.db.models.Q) is an object used to encapsulate a collection of keyword arguments. These keyword arguments are specified as in “Field lookups” above.”

Comencemos entonces, debemos importar el objeto Q que pertenece a django.db.models

from django.db.models import Q

Una vez importado el objeto construimos nuestro QuerySet

results = Model.objects.filter( Q (tipo='REC', emision__month=1), Q (estatusdoc=0) | Q (estatusdoc=1) & Q (estatusdoc=2)).aggregate(ventas_mes=Sum('totalfinal'))

filtramos por tipo=’REC’ y emision mes= 1 (enero), seguidamente le decimos que (estatusdoc debe ser = 0) el operador | significa OR (estatusdoc = 1) el simbolo & significa AND (estatusdoc=2) y luego con aggregate sumamos el totalfinal que coincida con nuestra sentencia

¿Simple no?

Algunas fuentes para que se documenten mejor acerca del uso de este objeto en Django

http://www.michelepasin.org/blog/2010/07/20/the-power-of-djangos-q-objects/

https://docs.djangoproject.com/en/dev/topics/db/queries/

Anuncios

2 comentarios en “Consultas complejas Django (Forma simple)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s