Algunos objetos en Odoo tienen definido un campo name, el cual puede ser buscado, modificado y persistido debido a que por lo general tiene esta definición:
name = fields.Char('Nombre')
Ahora tambien existe el campo display_name. Cual es la diferencia entre ambos? El campo display_name es por lo general el campo name si el mismo esta definido. Si no esta definido toma un valor automático muy divertido, como pueden ver debajo
Como hacemos para modificar dicho campo (se los vuelvo a recordar, display_name)? Mostrar un nombre como "[DEFAULT_CODE] PROD_NAME" como sucede con los productos? El campo display_name 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
Lo único que deben hacer es extender dicho método. Espero que les sea de utilidad,