¡Continuamos con la Semana 3! En Odoo, cada llamada a un método Python (create, write, un botón, etc.) se realiza con tres elementos principales: la colección de registros (self), el request (kwargs) y, lo más importante, el Contexto.
El Contexto es una pieza de información esencial. Es un diccionario de Python que actúa como un diccionario de variables globales y locales para cada petición. Te permite saber el estado del entorno en ese momento.
¿Qué hemos cubierto en el Día 17?
Hemos visto ejemplos de cómo leer el contexto en Python y, más crucial aún, cómo modificarlo desde la capa XML para inyectar información.
Los componentes clave que hemos cubierto son:
1. Lectura del Contexto en Python
Dentro de cualquier método Python, el contexto está disponible a través de self.env.context. Algunas de las claves más importantes que podemos leer son:
- uid: El ID del usuario que está ejecutando el método.
- lang: El idioma de la sesión del usuario.
- tz: La zona horaria del usuario.
- company_id: El ID de la compañía actual (esencial para la multi-compañía).
2. Modificación del Contexto desde XML
La parte más poderosa es manipular el contexto para cambiar el comportamiento de las acciones subsiguientes. Esto se hace principalmente en:
- Acciones de Ventana (ir.actions.act_window): Podemos añadir valores por defecto que se aplicarán al crear nuevos registros. Por ejemplo, context=»{‘default_partner_id’: active_id}» para asignar el ID activo a un campo relacionado.
- Botones: Podemos pasar información adicional a un método Python.
3. Usos Estratégicos del Contexto
El contexto se utiliza estratégicamente para:
- Valores por Defecto: Inyectar valores iniciales en nuevos formularios (similar a default_get, pero definido desde el front-end).
- Filtros de Dominio: Limitar los resultados de un campo Many2one o One2many.
- Multi-Compañía: Asegurar que la lógica se ejecute solo para la compañía actual.
La Importancia para el Desarrollo Avanzado
El contexto es la forma principal en que la interfaz de usuario se comunica con el backend sobre las condiciones actuales de la sesión. Dominarlo es un requisito para personalizar Odoo a un nivel avanzado.
Explicación Detallada en Vídeo
En el siguiente vídeo, te muestro paso a paso cómo acceder al contexto en Python, y la sintaxis XML necesaria para inyectar nuevos valores en él, usando el ejemplo de asignar un valor por defecto al crear un registro.
[EMBED YOUTUBE VIDEO DÍA 17 AQUÍ]
Código Fuente en GitLab
Puedes consultar el código fuente completo de esta lección, con la implementación de la lectura y modificación del contexto, directamente en nuestro repositorio.
➡️ Ver el Código en GitLab: https://github.com/angelmoya/calendario-adviento-curso-tecnico-odoo-19/tree/a414caeed9e1d87200131f0e46a3a97dc9a9319c
Conecta Conmigo y Sigue Aprendiendo
¡Ya tienes una de las herramientas más poderosas de Odoo! Mañana, el campo más útil para compartir datos.
- LinkedIn: Conecta conmigo en LinkedIn
YouTube: ¡No olvides suscribirte al canal para no perderte ninguna lección! http://www.youtube.com/@AngelMoya-Odoo