The Defining the Model representation and order recipe in Chapter 3, Creating Odoo Modules introduced the name_get()
method, which is used to compute a representation of the record in various places, including in the widget used to display Many2one
relations in the web client.
This recipe shows how to allow searching for a book in the Many2one
widget by title, author, or ISBN by redefining name_search
.
For this recipe, we will be using the following model definition:
class LibraryBook(models.Model): _name = 'library.book' name = fields.Char('Title') isbn = fields.Char('ISBN') author_ids = fields.Many2many('res.partner', 'Authors') @api.model def name_get(self): result = [] for book in self: authors = book.author_ids.mapped('name') name = u'%s (%s)' % (book.title, u', '.join(authors)) result.append((book.id, name)) return result
When...