Overriding name_get method odoo 8Overriding name_get method odoo 8

Greetings Everyone, in this blog-post you will learn how to override name_get method in Odoo 8.

The syntax of name_get is:

name_get(self) —> [(id, name), …]

Returns a textual representation for the records in self. By default this is the value of the display_name field.

Returns: list of pairs (id, text_repr) for each records
Return Type: list(tuple)

 

 

Example of name_get method in Odoo 8:-

Here, what I want to do is, I want to view country and the country code both as name for any country.

  1. This was the scenario in the beginning. Whenever I clicked Many2one field of country (which calls name_get method) it only showed the country name as display value as shown in the picture below. My goal is to see the country name + country code as display.

    name_get Override odoo 8
    Click on the picture to enlarge
  2. Now I will override the name_get method of res.country model.

    Code to Override name_get method in Odoo 8

    from openerp import models,api
    
    class res_country(models.Model):
        _inherit = 'res.country'
    
        @api.multi
        def name_get(self):
    
            res = super(res_country, self).name_get()
            data = []
            for country in self:
                display_value = ''
                display_value += country.name or ""
                display_value += ' ['
                display_value += country.code or ""
                display_value += ']'
                data.append((country.id, display_value))
            return data

    Here, I need to prepare a list of tuple wich is passed as return value to the method.

    Inside the loop of self, I need to prepare a string which I want as the display value. Here i concatenated the name and code. i.e display_value in above code

    Then prepare a tuple. The first value in the tuple is the id of the record and the second value is the string (display) that we prepared above. Append all the tuples in a list and return.

  3. Now after restarting the server when I click on the Many2one field of country, country name + code is seen in the view as shown in the picture below,
    name_get_3 Override odoo 8
    Click on the picture to enlarge

     

Here is a snapshot from Eclipse IDE:-

name_get_2 Override odoo 8
Click on the picture to enlarge

 

Hope you got an insight and understanding of the name_get method in Odoo 8 and the way of overriding it.

Please Comment below if you have any doubts,

Thank you.

By Burhan Vakharia

Having 6+ years of experience working on Odoo with projects covering several business verticles like Retail industry, Manufacturing, Service, Rental, Education, Medical and many more. I am having experience working on Odoo projects from several countries across the globe.

10 thoughts on “Learn – Overriding name_get method in Odoo 8 with Example”
  1. I’m really inspired with your writing abilities. Anyway stay up the nice
    high quality writing, it’s uncommon to look a great weblog like this
    one these days..

  2. If you would like to increase your odoo know-how simply
    keep visiting this web page and be updated with
    the most recent information posted here.

Leave a Reply

Your email address will not be published. Required fields are marked *