Obteniendo objetos por referencia

Gustavo Orrillo
- 30/01/2022 - 1 min. de lectura

Algo que uno como programador hace a menudo es la búsqueda de objetos. Por ejemplo, en el módulo l10n_ar_point_of_sale necesitamos obtener el objeto del cliente "Consumidor Final Anónimo". Para lo cual hay dos formas de hacerlo. La primera es por medio de una búsqueda:

partner_id = self.env['res.partner'].search([('name','=','Consumidor Final Anónimo')])

Y rezar para que el usuario no le haya modificado el nombre... por ejemplo cambiando mayúsculas por minúsculas. Eso es una batalla perdida. La segunda opción es por medio del ID que Odoo le otorga al objeto. El cual es mucho más dificil de cambiar (y por lo general no cambian a lo largo de la vida del sistema). Como se hace para obtener dicho objeto?

partner_id = self.env.ref(''l10n_ar.par_cfa')

En este caso, el módulo l10n_ar dio de alta el cliente, y le asignó el ID par_cfa. Como hacemos para conocer el ID? Es simple, en modo desarrollador se debe clickear en "Ver Metadatos". Y verán un pop-up donde se puede apreciar el External ID.


Acerca de:

Gustavo Orrillo

Apasionado de la programación, implementa Odoo para distintos tipos de negocios desde el año 2010. En Moldeo Interactive es Socio fundador y Programador; además de escribir en el Blog sobre distintos temas relacionados a los desarrollos que realiza.