PROGRAMACIÓN ODOO: 💻 Cómo se componen los MODELOS Ⓜ️ Python en app Odoo | Desarrollo: crear módulo
¿Cómo se estructura una aplicación en Odoo?
Estructura básica de una aplicación en Odoo
- En este vídeo se explora la estructura de una aplicación en Odoo, destacando la carpeta principal y sus subcarpetas, así como los archivos esenciales como
__init__.pyy__manifest__.py.
- La estructura típica incluye carpetas como
modelsywizards, donde se encuentran los modelos que definen la lógica de negocio y las interacciones del usuario.
- Cada carpeta contiene archivos Python junto con un archivo
__init__.py, que permite a Python reconocer el directorio como un paquete.
Modelo Vista Controlador (MVC) en Odoo
- La arquitectura de Odoo es similar al patrón MVC, donde los archivos Python representan el modelo y la lógica de negocio, mientras que los archivos XML definen la vista o interfaz gráfica.
- Los modelos describen objetos de negocio, tales como clientes, proveedores o productos. Cada modelo se declara mediante una clase en Python.
Declaración de Modelos
- Para declarar un modelo en Odoo, se utiliza una clase Python que incluye atributos (campos) y métodos (lógica de negocio).
- Un modelo tiene atributos definidos por campos y puede incluir su propia lógica a través de métodos dentro de la clase.
Estructura detallada del Modelo
- La declaración del modelo comienza con la palabra reservada
class, seguida del nombre del modelo con mayúscula inicial para cada palabra.
- Los campos son definidos usando la palabra reservada
fields, especificando qué tipo de datos puede almacenar el modelo.
Persistencia y ORM en Odoo
- El ORM (Object Relational Mapping) traduce instrucciones Python a sentencias SQL, evitando así escribir directamente estas últimas en el código.
- En este contexto, cada registro guardado corresponde a una fila en una tabla, mientras que los campos son representados como columnas dentro de esa tabla.
Modelos en Python: Tipos y Declaraciones
Tipos de Modelos en Python
- En la programación con Python, se pueden declarar modelos utilizando
models.Móvil, donde se define el nombre del modelo, los campos y las funciones necesarias para su funcionamiento.
- Existen modelos temporales llamados
models.TryEnModel, que almacenan datos de manera temporal y son eliminados automáticamente después de un tiempo. La declaración es similar a la de un modelo regular.
- Los modelos regulares se almacenan permanentemente en la base de datos hasta que se da una instrucción explícita para eliminar el registro, mientras que los modelos transitorios tienen un ciclo de vida más corto.
Diferencias entre Modelos
- La principal diferencia entre los tipos de modelos radica en cómo acceden a la información y cómo esta es almacenada en la base de datos.