Este es un módulo técnico. Su objetivo es facilitar la ejecución del método onchange llamado directamente desde código Python.
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 19.0Este módulo técnico permite a los desarrolladores ejecutar la lógica de onchange de Odoo directamente desde código Python, sin necesidad del cliente web. Lo utilizan otros módulos, no los usuarios finales.
Este es un módulo técnico dirigido a desarrolladores. Añade dos métodos auxiliares en el modelo base que hereda cualquier modelo de Odoo, para que otros módulos puedan simular lo que ocurre en la interfaz de usuario cuando se cambia un campo.
play_onchangestoma un diccionario de valores y una lista de nombres de campos, y luego ejecuta los métodos onchange para esos campos en el orden dado. Devuelve los valores resultantes, incluidos los valores calculados por la lógica onchange._get_new_valueses un auxiliar interno que extrae los nuevos valores devueltos por una llamada onchange, convirtiendo los valores many2one a su id de base de datos.
El módulo no añade menús, pantallas, botones, informes ni trabajos programados. No modifica ninguna regla de negocio por sí mismo. Su propósito es facilitar que otros módulos reutilicen el comportamiento onchange al crear o actualizar registros desde código, por ejemplo en importaciones o procesos automatizados. Depende del módulo web y extiende el modelo base, por lo que los auxiliares están disponibles en todos los modelos. Como es una herramienta para desarrolladores, los usuarios finales no verán ningún cambio directo en Odoo.
Depende de
Lo necesitan otros módulos
Modelos y campos (1)
- base · amplía un modelo existente
Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 8 confirmadas, 1 sin información de 9 versiones.
Fuentes · Odoo 19.0
Confirmado el 2026-11-03 en la rama 19.0 de OCA/server-tools.
terminal Instalación y uso
Documentación de OCA · Odoo 19.0Para usar este módulo, necesita:
- depender de este módulo
- llamar a yourmodel.play_onchanges(values, ['field'])
Ejemplo si quiere crear un pedido de venta y quiere obtener los valores relativos al campo partner_id (como si rellenara el campo desde la UI)
> vals = {'partner_id': 1} > > vals = self.env['sale.order'].play_onchanges(vals, ['partner_id'])
Entonces, vals se actualizará con partner_invoice_id, partner_shipping_id, pricelist_id, etc...
Los valores por defecto se usarán para procesar los métodos onchange, si los campos respectivos no están establecidos en vals. Puede obtenerlos si pasa el nombre de los campos en la lista de campos.
> vals = {'partner_id': 1} > > vals = self.env['sale.order'].play_onchanges(vals, ['partner_id', > 'date_order'])
vals contendrá, además de los valores modificados, el valor por defecto de date_order
También puede usarlo en un registro existente, por ejemplo:
> vals = {'partner_shipping_id': 1} > > vals = sale.play_onchanges(vals, ['partner_shipping_id'])
Entonces el onchange se ejecutará con los vals pasados y los vals existentes del pedido de venta. vals se actualizará con partner_invoice_id, pricelist_id, etc..
Entre bastidores, play_onchanges ejecutará todos los métodos registrados para la lista de campos modificados, por lo que no tiene que llamar manualmente a cada onchange. Para evitar problemas de rendimiento cuando se llama al método sobre un registro, el registro se transformará en un registro en memoria antes de llamar a los métodos registrados para evitar desencadenar comandos de actualización SQL cuando los valores se asignan al registro mediante el onchange
Notas:
- El orden en onchange_fields es muy importante, ya que los métodos onchange se ejecutarán en ese orden.
- Si usa un objeto en memoria en vals, tenga en cuenta que el método onchange en el modelo base llama a self.invalidate_cache() que lo restablece.
Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.