Consultas Multiples en una línea con Django
March 18, 2016
Consultas Multiples en una línea con Django
El ORM de Django es una herramienta muy potente, pero a la hora de realizar operaciones SQL complejas, debemos recurrir al raw, o anidar algunos ciclos, que no es algo muy eficiente a final de cuentas, porque terminamos realizando un montón de consultas y sobrecargando nuestra aplicación.
No tengo nada en contra de ejecutar sentencias RAW, pero con regularidad, he usado algunas herramientas de python para pulir mis consultas.
Un ejemplo:
import operator
from django.db.models.query_utils import Q
def consulta_compleja(criterios):
return Modelo.objects.filter(reduce(operator.or_, [Q(filtro=criterio) for criterio in criterios]))