Leyendo objetos por referencia (o por medio de su external ID)

20 de junio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Si uno es desarrollador hay actividades que hace a diario; utilizar el debugger es una, y hacer búsqueda de registros dentro de los scripts/módulos es otra. Lo cual puede ser sencillo, supongamos que necesitamos buscar la moneda dolar americano:



currency_id = self.env['res.currency'].search([('name','=','USD')])


Y rezar para que el usuario en su inmensa sabiduría no le haya modificado el nombre (crealo o no, el espiritu entrepreneur del usuario es infinito)... como por ejemplo cambiando mayúsculas por minúsculas (usd en lugar de USD). Eso es una batalla perdida, más si uno tiene que buscar nombres como "Consumidor Final" (o lidiar con acentos o todos los caracteres que nos brinda el maravilloso idioma castellano). 

La segunda opción de búsqueda es por medio del ID que Odoo (o uno) le otorga al objeto en el momento de creación del mismo. Este ID es 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 por medio del ID? Volviendo al ejemplo anterior

currency_id = self.env.ref(''base.USD")


En este caso, el módulo base (que se instala cuando uno creó una base de datos) dio de alta la moneda USD, y le asignó el ID USD. 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 (en otro post veremos como crear el external ID).


Gustavo Orrillo 20 de junio de 2023
Compartir
Categorías
Archivar
Identificarse dejar un comentario