Día 3: Definiendo Modelos de Datos en Odoo
En la lección de hoy vamos a empezar a dar forma a la lógica de negocio de nuestra aplicación de biblioteca. Crearemos nuestro primer «Modelo», que en Odoo es la representación de los datos con los que vamos a trabajar. En nuestro caso, crearemos el modelo `library.book` para almacenar la información de nuestros libros.
Explicación en Vídeo
Te explico en detalle qué es el ORM de Odoo, cómo se define un modelo y qué tipos de campos básicos existen en el siguiente vídeo.
Código Fuente en GitHub
Puedes consultar el código fuente completo de esta lección directamente en nuestro repositorio.
Conceptos Clave de Hoy: El ORM de Odoo
Odoo cuenta con un potente ORM (Object-Relational Mapping) que nos permite definir la estructura de la base de datos utilizando clases de Python, sin necesidad de escribir SQL directamente.
Hoy hemos creado los siguientes ficheros:
- `models/__init__.py`: Al igual que el `__init__.py` principal, este fichero sirve para que Python reconozca el directorio `models` como un paquete y nos permite cargar todos los modelos que definamos dentro.
- `models/book.py`: Aquí reside la magia. Hemos definido una clase `Book` que hereda de `models.Model`.
- `_name = ‘library.book’`: Este atributo es fundamental. Le dice a Odoo que cree una tabla en la base de datos llamada `library_book` (reemplazando el punto por un guion bajo).
- `name = fields.Char(…)`: Hemos definido nuestro primer campo. `name` es un campo de tipo `Char` (cadena de texto) que usaremos para el título del libro. En Odoo, el campo `name` suele tener un tratamiento especial y se usa como descripción principal del registro.
No olvides importar el nuevo fichero `book.py` en `models/__init__.py` y este, a su vez, en el `__init__.py` principal del módulo. ¡Solo así Odoo será consciente de nuestro nuevo modelo!
## ¿Preguntas o Sugerencias?
¿Qué te parece el sistema de modelos de Odoo? Si tienes cualquier pregunta sobre el ORM o los tipos de campos, no dudes en contactarme.
* **LinkedIn:** [Conecta conmigo en LinkedIn](https://www.linkedin.com/in/angelmoya-es/)
* **YouTube:** ¡No olvides suscribirte al canal para no perderte ninguna lección! https://www.youtube.com/channel/UCg-71aQMkhYAZgtB6azKKkQ
—
#Odoo #DesarrolloOdoo #OdooDeveloper #CursoOdoo #OdooTraining #Python #OdooORM #ModelosOdoo #PostgreSQL