Saltar la navegación

Campos relacionales

Many2one, One2many, Many2many

Los campos relacionales son aquellos cuyos valores son obtenidos de otro modelo del sistema. El funcionamiento es similar al que se tendría en un sistema de base de datos relacional y las relaciones de 1 a 1 ó de 1 a muchos. Odoo, evita que tengamos que crear las tablas y sus relaciones pero proporciona este tipo de campos para establecer dichas relaciones.

Por ejemplo, si tenemos un sistema de incidencias en el que se informan de los problemas ocurridos en un aula, tendremos un campo relacional entre el modelo incidencia y el modelo aula. Una incidencia se producirá en una aula y a su vez, en un aula, se pueden producir varias incidencias durante el curso. Este tipo de campo se definirá como Many2one en el modelo incidencias.

En el siguiente vídeo podéis ver ejemplos de los diferentes tipos de campos relacionales que podemos utilizar en el ORM de Odoo.

Alexandre Ibáñez López. Tipos de campos relacionales (CC BY-NC-SA)

Para saber más

En la documentación de Odoo encontrarás información sobre la notación a utilizar para definir los campos relaciones. Puedes consultarla directamente desde aquí.

Tarea

Duración:
00:30
Agrupamiento:
1

En esta tarea debemos añadir un campo relacional entre los modelos citas y servicios. Cuando solicitamos una cita, lo hacemos para un servicio concreto. Esto va a significar que debemos establecer una relación Many2one entre el modelo citas y el modelo servicios. Por tanto, vamos a tener que crear un campo many2one en citas que enlace con el modelo servicios.

Establece dicha relación y trata de realizar la relación inversa en el modelo servicios. De este modo podremos saber la cantidad de citas que hay para un determinado servicio. 

Tarea Avanzada

Duración:
00:45
Agrupamiento:
1

Vamos a mejorar las posibilidades de nuestro servicio de citas para que se pueda seleccionar el usuario que te debe atender. Para ello debemos añadir un nuevo modelo usuarios que esté enlazado a servicios y también a citas. Por un lado, el usuario puede atender uno o varios servicios. Por el otro, una cita solo será atendida por un usuario.

Incluye también en el modelo usuarios un campo en el que se pueda incluir una foto del mismo.

Creado con eXeLearning (Ventana nueva)