THE CHALLENGE:
I needed to display a hierarchy name for a custom model similar to what you see in product categories so I could easily identify the hierarchy relationship of a category at a glance. Notice how the name is actually a hierarchy representation of the category name and its parent(s).
THE SOLUTION:
Use Odoo’s model inheritance.
Create a new model (i.e. “new_model”), use Odoo’s model inheritance and inherit product.category which gives the new model the same fields and functions of the model inherited using _inherit. The new model now also includes a field complete_name, a computed field created using the name_get_func found in product.py. This computed field is the magic behind displaying the hierarchy name. You can now add complete_name to your view and display the hierarchy name as desired.
Below is the finished working model definition:
class new_model( models.Model ): _name = "new.model" _inherit = 'product.category' _parent_store = True parent_left = newFields.Integer( index = True ) parent_right = newFields.Integer( index = True ) name = newFields.Char( string = 'Category Name' ) child_id = newFields.One2many( 'cb.public.catalog.category', 'parent_id', string = 'Child Categories' )