@api.constrains 🛑 ¡Lo Que Tienes Que Saber! Restricciones Python Odoo | Ejemplo date y UNIQUE name

@api.constrains 🛑 ¡Lo Que Tienes Que Saber! Restricciones Python Odoo | Ejemplo date y UNIQUE name

¿Cómo utilizar restricciones en Python?

Introducción a los constraints

  • Josué presenta el tema del video: el uso de restricciones (constraints) en Python para evitar que los usuarios ingresen datos incorrectos.
  • Se mencionan las restricciones comunes, como prevenir campos vacíos, valores no deseados y la repetición de valores.

Importancia de las restricciones

  • Las restricciones ayudan a prevenir inconsistencias en los datos dentro del modelo.
  • Se explican dos métodos para implementar constraints: mediante SQL y código Python; este video se centrará en el segundo.

Implementación de constraints en Python

  • Para usar el decorador @api.constrains, es necesario definir los campos involucrados. La validación se activa al modificar estos campos.
  • El método debe lanzar una excepción (ValidationError) si alguna validación falla. Los nombres de campos relacionales no son compatibles con este decorador.

Estructura básica para declarar una restricción

  • Se muestra cómo importar ValidationError y utilizar el decorador @api.constrains con uno o más campos.
  • Un ejemplo práctico involucra validar fechas al modificar un campo específico.

Ejemplo práctico: Validación única de nombres

  • Se discute un inconveniente donde Odoo considera diferentes registros basados en mayúsculas/minúsculas, permitiendo duplicados.
  • Para abordar esto, se crea un método llamado check_unique_name que ignora diferencias entre mayúsculas y minúsculas al validar nombres.

Proceso de validación

  • El método consulta todos los registros excluyendo el ID actual y compara nombres convertidos a minúscula.
  • Si se encuentra un nombre duplicado (sin considerar mayúsculas), se lanza un ValidationError.

Resultados de la implementación

  • Al probar la restricción, se observa que Odoo permite guardar registros duplicados hasta que se implementa la validación en Python.
  • Con la nueva restricción, intentar guardar un registro duplicado genera un error de validación efectivo.

Conclusión sobre las ventajas del uso de código Python para restricciones

Video description

En este video explico qué son, para qué sirven y cómo usar las restricciones python dentro de Odoo con el decorador @api.constrains. Ejemplo práctico de restricción de campos únicos y restricción con fecha. 🎓 Curso gratuito para aprender a programar en Odoo: https://www.youtube.com/playlist?list=PLXwzJRuH--eYHB3OD2wATjzJ83UAp2WQs 🎨 ¿Quieres algo más personalizado? ¿Quieres capacitar a tu equipo de trabajo? Contáctame y platicamos... https://ko-fi.com/josuheuh/commissions 🎓 Curso gratuito API externa Odoo: https://www.youtube.com/playlist?list=PLXwzJRuH--eZn0SMw79wDSVlFT0Qtcn9j 🌐 Conéctate fácilmente a través de la API de Odoo usando este Script 👇: https://ko-fi.com/s/0466aa2700 ☕️ Apoya a este canal con un Café: https://ko-fi.com/josuheuh 00:00 Introducción 00:07 ¿Qué son y para qué sirven? 01:01 Python api.constrains 02:16 Código básico 03:20 Restricción UNIQUE SQL limitado 04:10 unique name con api.constrains 06:14 Probando la restricción en Odoo