In Odoo ERP whenever we make a quotation, sale order, or in any case when we type a product name, we can see the suggestion of products shown in a dropdown list. In this list product names are preceded with a unique code called an internal reference. This is shown in the suggestion list for selecting exact products from two or more products that have the same name.
In this blog, the name_get() function of the Odoo platform is explained in detail.
This process of obtaining internal reference with the product name in the product list is done using the name_get() function in Odoo.
This is the Record(set) info of name_get(),
Model.name_get() ? [(id, name), ...]
It returns a literary representation for the records inside.
name_get() function returns a list of pairs (id, text_repr) for each records and the return type is a list(tuple)
Now let us see how to define a name_get() function inside a model,
Here, I have a custom model ‘profit.center’ which has 2 fields as shown in the below image,
Now whenever I call
this model using a Many2one relation between other models, only the profit center name will be listed as shown below,
So, using the name_get() function in Odoo, let us see how we can add the short name of each profit center along with the profit center name.
For that we shall define the name_get() function inside the model ‘profit.center’.
Defining name_get ()
class ProfitCenterInherited(models.Model):
_inherit = 'profit.center'
def name_get(self):result = []
for rec in self:result.append((rec.id, '%s - %s' % (rec.short_name,rec.name)))
return result
Here “short_name” and “name” are the technical names of profit center short name and profit center name respectively.
Now if we run this code, we can see the desired output as shown below,
In this manner we
can define the name_get() function inside any model for better clarification of
data and helps to select the exact item from a list.