Odoo Help


on_change issue? More precise modules preference?

Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 1:42 AM 1,537 views

I have two modules.
Both inheriting sale module.
Both have same field demo in py and xml.
Both having same on_change method in it with same parameter.

Question is if both modules are installed which module on_change will trigger.

How Odoo/Openerp Modules will take preference?? By module name or Installation time or any other factor??




| 5 4 6
Zagreb | Karlovac, Croatia

there is only 10 kind of people the ones that understand binary ... and others

On 7/2/14, 4:44 AM

if you are asking for debug purposes.. probably the last installed will be triggered.. 
but that is bad practice and confusing code.. try to avoid it.. because if you install both modules you will probably get fields in your views shown twice wich is very bad... OE does not handle well if same field is shown twice on one view...
if you have two modules using(and needing)  the same attribute probably the best solution is to make third module which will contain that attribute (also methods and views for it) and the two original modules can depend on new one.. so you will avoid double adding fields..

I can handle the twice field issue by fields_view_get using lxml properties. But i want to know the module preferences. And no, it wont get triggered on the basis of installation while debugging.

Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 11:00 AM

René Schuster

--René Schuster--
| 5 5 8
Weinheim, Germany
--René Schuster--

Challenge Everything!

René Schuster
On 7/2/14, 2:46 AM

It depends on your your type of inheritance for your custom modules.

If both modules use class inheritance ( _inherit = 'parent.model', _name = 'parent.model'), the both fields will be exactly the same.

if you use prototype inheritance ( _inherit = 'parent.model', _name = 'new.name'), the database will contain different tables for your new custom modules. This will result in no conflict, since the fields (although they have the same name) are part of different database tables.


I'm not sure, which on_change method will be used in your case. Maybe the last installed module will determine it. Maybe the sequence/order of the views will play a role.

You should think about your design and maybe try to change the inheritance.

Why not using one custom module instead of two?
Or let module A inherit from Sales and module B from module A?



Okay. I forgot to add this. I use class inheritance (_inherit = 'parent.model', _name = 'parent.model') on both modules. Module A, Module B.

Dhinesh - Technical Consultant, Sodexis Inc
on 7/2/14, 3:27 AM

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

1 follower(s)


Asked: 7/2/14, 1:42 AM
Seen: 1537 times
Last updated: 6/4/15, 5:59 AM