Read Only ByPass

Allow to save onchange modifications to readonly fields

Technical Name:
  • Odoo Version

License: AGPL-3

Read Only ByPass

This module provides a solution to the problem of the interaction between 'readonly' attribute and 'on_change' attribute when used together. It allows saving onchange modifications to readonly fields.

Behavior: add readonly fields changed by on_change methods to the values passed to write or create. If readonly_by_pass is in the context and True then it will by pass readonly fields and save its data provide by onchange method.


This module changes the behaviour of Odoo by propagating on_change modifications to readonly fields to the backend create and write methods.

To change that behavior you have to set context on ir.actions.act_window:

<record id="sale.action_quotations" model="ir.actions.act_window">
    <field name="context">{'readonly_by_pass': True}</field>

or by telling fields allowed to change:

<record id="sale.action_quotations" model="ir.actions.act_window">
    <field name="context">
        {'readonly_by_pass': ['readonly_field_1', 'readonly_field_2',]}

On one2many fields, you can also pass the context in the field definition:

<field name="one2many_field" context="{'readonly_by_pass': True}"/>
Try me on Runbot

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.




Odoo Community Association

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

To contribute to this module, please visit