Odoo Help


How to override the onchange_product_tmpl_id with new api?

Stefano Del Gobbo
on 1/22/15, 5:52 AM 1,753 views


I'm new to Odoo, and I need to override a existing method.

What i need is to insert new lines on Bill Of Material tree, on changing product template id. 

There are just a method on mrp_bom class, called onchange_product_tmpl_id, so according with what i understood, i need to inherit the mrp_bom class in a new class, and override the onchange_product_tmpl_id method with a new one.

How can I override the method with new api (the old super() in OpenERP) and fire the onchange method when ai change the product template id?

Something like that:

class bom_template(models.Model):

    _inherit = 'mrp.bom'


    def _populate_bom_lines(self):

        lines =[]

        for val in self.bom_template: #value on a BOM template that cointain products
        line_item = {
                      'attr1': val.name,
                      'attr2': val.a1,
        lines += [line_item]
    self.update({'line': lines})

Drees Far
On 11/18/15, 1:28 PM

Hello my friend;

here is some useful links:



and here is an example:


def on_change_prix_id(self, cr, uid, ids,list_price, prix_vente_minimum, context=None): 

if list_price < prix_vente_minimum:

My_error_Msg = 'Attention!! Votre Prix de vente est inférieur au prix de vente minimum'

raise osv.except_osv(_("Error!"), _(My_error_Msg))

return True 


return True


<field name="list_price" on_change="on_change_prix_id(list_price, prix_vente_minimum)">

Best Regards.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 1/22/15, 5:52 AM
Seen: 1753 times
Last updated: 11/27/15, 9:38 AM