Forzare il ricalcolo dei campi calcolati in odoo

Forzare il ricalcolo dei campi calcolati in odoo può essere necessario in alcuni casi specifici.

A volte anche semplicemente per la quantità di campi da ricalcolare, con realtivi problemi di performance, oppure per esigenze di sviluppo.

Prima della versione 13 il metodo poteva essere questo:

partner_obj = self.env['res.partner']
self.env.add_todo(partner_obj._fields['display_name'], partner_obj.search([]))
model.recompute()

Dalla 13 in avanti la sintassi cambia in questo modo:

partner_obj = self.env['res.partner']
self.env.add_to_compute(partner_obj._fields['display_name'], partner_obj.search([]))

Liberamente tradotto da questo articolo in lingua inglese:

https://www.djdc.net.au/blog/odoo-developer-tips-2/post/recalculate-computed-fields-in-odoo-13-2