Aprender Django ORM avanzado

Módulo del curso de Django

Django
Django
Módulo del curso
1 lecciones
Actualizado: 18/04/2026

Módulo: ORM avanzado

Este módulo forma parte del curso de Django. Incluye 1 lecciones .

ORM avanzado

El módulo de ORM avanzado profundiza en las herramientas que Django ofrece para consultas sofisticadas y optimización de acceso a datos. Cubre managers personalizados, objetos Q y F, transacciones atómicas y estrategias de carga anticipada con select_related y prefetch_related.

Managers personalizados

Los managers son la interfaz principal entre el modelo y la base de datos. Django proporciona un manager por defecto (objects), pero se pueden crear managers personalizados para encapsular consultas frecuentes:

class ProductoActivoManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(activo=True)

class Producto(models.Model):
    nombre = models.CharField(max_length=100)
    activo = models.BooleanField(default=True)

    objects = models.Manager()
    activos = ProductoActivoManager()

Objetos Q y F

Los objetos Q permiten construir consultas con operadores lógicos (|, &, ~) para condiciones complejas que no se pueden expresar con filter() encadenado. Los objetos F referencian valores de campos de la base de datos directamente, evitando traer datos a Python para compararlos o actualizarlos.

from django.db.models import Q, F

# Productos caros O destacados
Producto.objects.filter(Q(precio__gt=100) | Q(destacado=True))

# Incrementar precio un 10 % sin traer los datos a Python
Producto.objects.update(precio=F('precio') * 1.10)

Transacciones y optimización

Las transacciones atómicas (transaction.atomic()) garantizan la consistencia de operaciones que afectan a varias tablas. Para optimizar las consultas con relaciones, select_related ejecuta un JOIN en consultas uno-a-uno y muchos-a-uno, mientras que prefetch_related realiza una consulta adicional para relaciones muchos-a-muchos y conjuntos inversos.

Lecciones de este módulo

Explora todas las lecciones disponibles en ORM avanzado

Explora más sobre Django

Descubre más recursos de Django

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Django es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.