Día 16: El Método default_get — Automatizando los Valores Por Defecto

¡Continuamos con la Semana 3! Si en el Día 15 aprendimos a crear datos permanentes con XML, hoy vemos cómo poblar los formularios temporalmente, justo en el momento en que el usuario va a crear un nuevo registro.

El método default_get es uno de los más sobreescritos en el desarrollo de Odoo (V19) porque nos permite controlar qué valores se muestran por defecto antes de que el usuario interactúe con el formulario.

¿Qué hemos cubierto en el Día 16?

Hemos sobreescrito el método default_get de nuestro modelo para establecer lógica en la inicialización de campos, por ejemplo, asignando el valor del campo user_id al usuario que está creando el registro.

Los componentes clave que hemos cubierto son:

1. El Propósito de default_get

El método default_get(fields_list) se ejecuta automáticamente cuando Odoo necesita obtener los valores iniciales de un formulario, ya sea al abrir la vista de creación o al iniciar un asistente (wizard). Recibe una lista de los campos que Odoo necesita inicializar.

2. Sobreescritura y Estructura

Para inyectar nuestra lógica, sobreescribimos el método llamando primero a la implementación original (super()) para obtener los valores base (incluyendo los que están definidos en la propia declaración del campo).

  • Sintaxis: El método debe devolver un diccionario (dict) donde las claves son los nombres de los campos y los valores son los valores que queremos pre-rellenar.
  • Mejor Práctica: Siempre modificar el diccionario devuelto por super(), en lugar de crear uno nuevo, para no perder los valores por defecto del sistema.

3. Lógica Dinámica

default_get es el lugar ideal para lógica dinámica:

  • Asignar el usuario o la fecha actual.
  • Cargar valores de campos relacionados o de la configuración global de la compañía.
  • Establecer un valor por defecto basado en el contexto de la acción (context).

La Importancia para la Usabilidad

La correcta implementación de default_get mejora la Usabilidad (UX). Si un usuario crea 50 registros al día, pre-rellenar el 80% de los campos obligatorios le ahorra un tiempo significativo y minimiza los errores de entrada.


Explicación Detallada en Vídeo

En el siguiente vídeo, te muestro paso a paso la estructura de la sobreescritura, cómo obtener los datos del usuario actual y cómo asegurar la llamada a super() para un desarrollo limpio.


Código Fuente en GitLab

Puedes consultar el código fuente completo de esta lección, con la sobreescritura del método default_get, directamente en nuestro repositorio.

➡️ Ver el Código en GitLab:https://github.com/angelmoya/calendario-adviento-curso-tecnico-odoo-19/tree/d6dc5a9fe45e6763e0034417b6b9c664de08dda3


Conecta Conmigo y Sigue Aprendiendo

¡Ya puedes inicializar tus formularios inteligentemente! Mañana volvemos a la eficiencia de datos.

YouTube: ¡No olvides suscribirte al canal para no perderte ninguna lección! http://www.youtube.com/@AngelMoya-Odoo