Writing to records
We have two different ways to write to records: using the object-style direct assignment or using the write()
method. The write()
method is the low-level method in charge of performing write operations, and it is still used directly when using the external API or when loading XML records. The object-style direct assignment was added later into the ORM model. It implements the active record pattern and can be used in Python code logic.
Changes in Odoo 13
In Odoo 13, the ORM model introduced a new database writing approach called in-memory ORM. In previous Odoo versions, every write would immediately generate the corresponding database SQL command, and this came with a performance penalty, especially when complex interdependencies caused repeated updates on the same records. Since Odoo 13, these operations are instead saved in a memory cache, and at the end of the transaction, the new flush()
method is automatically called to perform the corresponding database...