Cambiando los nombres de los objetos en Odoo

Gustavo Orrillo
- 11/09/2019 - 1 min. de lectura

Cada objeto en Odoo por lo general tiene un campo denominado name, el cual puede ser modificado y persistido debido a que por lo general tiene esta definición:

name = fields.Char('Nombre')

Este campo tambien puede ser buscado. Ahora, como hacemos para modificar el nombre mostrado? Mostrar un nombre como "[DEFAULT_CODE] PROD_NAME" como sucede con los productos? Para eso se debe modificar los contenidos del campo display_name. Este campo es un campo computado en Odoo, el cual es definido por una función denominada name_get, la cual tiene el decorador @api.multi (o sea que va a loopear en un recordset) y devuelve una lista donde cada elemento es una tupla con la forma (id, nuevo_nombre). Por ejemplo

@api.multi
def name_get(self):
    result = []
    for rec in self:
        result.append((rec.id, rec.ref or 'N/A' + ' - ' + rec.name))
    return result

Espero que les sea de utilidad,

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.