Obteniendo objetos por referencia

Gustavo Orrillo
- 01/30/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

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.