Doubts about on change with

Hello, I have a doubt related to the on_change_with concepts. I have noticed on core_modules that sometimes depends have “parent_” and I believe that it has to do with the willing of its attribute triggers the method. So for example, if we put depends(‘inventory’, ‘_parent_inventory.state’), the fact that inventory’s state changed would trigger the on_change_with. If this were true, I have tried a lot of times and it doesn’t work and I would like to know if there is some way to link the changes of an attribute that belongs to another object, that is, If an object.attribute changes I want to trigger my method.

Thank you.

That’s indeed how it works.
How are you testing this because it should work.

Usually it is a ObjectLine that needs to change because of the many2One object, for instance, the state. So if we have a contract and contractLine, I want a on_change_with_stateLine that triggers when contract’s state changes.
By the way, I also had doubts if this whole _parent thing on depends were what I thought, because I have also saw this on on_change methods on the core, and that does not make sense then because on_changes are not like on_change_withs, the on_change depends are not made to trigger, they are only because we want to receive them from the client.

So it should work.

But if you want that the value of a field is always computed when the value of another field is changed (through an action of the user or some other process) then you should use a function field. Because on_changes are triggered by the client.

Yes, I always use the on_change_with as a getter for the function field. I think I have to insert it on the tree, I’ll use invisible attribute then, I think that’s why it hasn’t been working. Thank you for your help.