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

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.