Tipo de modelos en Odoo

Odoo, como framework de desarrollo empresarial, ofrece diferentes tipos de modelos para adaptarse a diversas necesidades de desarrollo. En esta guía exploraremos en profundidad los cuatro tipos principales de modelos disponibles en Odoo: Model, TransientModel, AbstractModel y Base.

Carlos Blanco

12/29/20253 min read

1. models.Model - El Modelo Estándar

El models.Model es el tipo de modelo más común y utilizado en Odoo. Representa tablas de base de datos persistentes que almacenan datos de forma permanente.

Características principales:

  • Persistente: Los datos se almacenan en la base de datos.

  • CRUD completo: Create, Read, Update, Delete

  • Herencia: Permite herencia de clases y prototipos.

  • Mapeo ORM: Relación objeto-relacional completa

Dentro de Odoo, este tipo de modelo es usado para los registros de clientes, facturas, inventario, ventas o compras.

- Ventas

- Compras

2. TransientModel - Modelos Transitorios

El models.TransientModel es un modelo especial cuyos registros se eliminan automáticamente después de un tiempo determinado. Es ideal para operaciones temporales como wizards o procesos batch.

El uso más recurrente para este tipo de modelos son los asistentes, procesos de importación o exportación de datos, configuraciones temporales o informes temporales.

- Asistente para crear facturas de venta

- Asistente para pago de facturas

3. AbstractModel - Modelos Abstractos

El models.AbstractModel es un modelo base que no crea tablas en la base de datos. Se utiliza para definir comportamientos y campos comunes que serán reutilizados por otros modelos.

Características principales:

  • No persistente: No crea tabla en la base de datos.

  • Reutilizable: Herencia múltiple sin conflictos

  • Mixins: Perfecto para crear mixins de funcionalidad.

  • Sin instancias: No se pueden crear registros directamente.

El mayor uso dado a este tipo de modelo son los reportes, funcionalidades comunes como envío de correos o logging, campos computados.

- Envío de correo de facturas

- Secuencias de facturas

4. models.Base - La Raíz de Todo

El models.Base es la clase raíz de la que heredan todos los modelos de Odoo. Rara vez se usa directamente en desarrollo de módulos, pero es importante entender su funcionamiento.

Características principales:

  • Clase base: Todas las clases de modelo heredan de ella.

  • Metaclass: Define el comportamiento de creación de modelos.

  • Registro automático: Registra modelos en el pool.

  • Configuración ORM: Establece la base del mapeo objeto-relacional.

Conclusión

Comprender los diferentes tipos de modelos en Odoo es fundamental para desarrollar aplicaciones eficientes y mantenibles. Cada tipo tiene su propósito específico:

  • Model: Para datos empresariales persistentes

  • TransientModel: Para operaciones temporales e interfaces.

  • AbstractModel: Para funcionalidad reutilizable y mixins.

  • Base: La base del sistema (uso interno)

La elección correcta del tipo de modelo impacta directamente en el rendimiento, mantenibilidad y escalabilidad de tu aplicación Odoo. Siempre considera si los datos deben persistir, si la funcionalidad es reutilizable o si necesitas una interfaz temporal antes de decidir qué tipo de modelo usar.

En Exdoo podemos desarrollar cualquier módulo para Odoo en México, implementamos tu ERP con consultores experimentados no solo en Odoo sino en procesos de negocios, tenemos 10 años trabajando solamente con Odoo en México y otros países.