I need to have a field A that is recomputed when a field B is changed.
But also need that field B is recomputed when field A changes.
I tried using two @api.depends methods, dealing myself to avoid actual infinite changes. But Odoo just throws a recursion error making this way impossible.
In version 6.1 and 7.0 I used some ugly hacks like onchange methods and dummy boolean fields, or trying to use the context to set a flag to cut the changes (still fighting with it). And that's what I am trying now in v8, with @api.onchange, but that is an ugly hack anyway.
Another cleaner way to deal with this situation, please?
Also see my question about the usage/update of context: https://www.odoo.com/forum/help-1/question/how-to-actually-use-and-modify-context-71903
So far, in this situation (A may modify B, B may modify A):
- @api.depends: impossible. Simply raises errors and Odoo server crashes.
- @api.onchange + context: no way if I cannot update context.
- @api.onchange + readonly boolean fields: It looks the only way, like in v6.1. But it is ugly, weird, hard to implement and completely sends to hell the promised new API "easiness".
There must be an easier way with API v8, isn't it? Sure I am just missing it... I hope.
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 12/30/14, 6:16 PM|
|Seen: 1466 times|
|Last updated: 3/16/15, 8:10 AM|