odoo 数据视图中的 noupdate

在odoo 的 __mainifest__.py中,可以定义模块数据和演示数据,其中有个参数 noupdate可以控制更新或者安装时数据的处理。

例如,mainfest中数据文件为mydata.xml

# always loaded
'data': [
    # 'security/ir.model.access.csv',
    'views/views.xml',
    'views/templates.xml',
    'mydata.xml',
],
# only loaded in demonstration mode
'demo': [
],

如果我们mydata.xml放到 'demo'中,不管 noupdate如何设置,模块更新时,数据都是初始化时的数据。

如果放到 data中,

noupdate=1时,即更新模块时不更新数据。此时会增加自己的数据,同样id的数据如果生产时有变更,更新模块时不会变更

noupdate=0时,即更新模块时同时更新数据,会增加原来代码中的data,同样id的数据如果生产时有变更,将不理会变更,更新时会变回mydata.xml中的数据。

如下例mydata.xml

<odoo>
    <data noupdate="1">
        <record id="object0" model="aa1.aa1">
            <field name="name">Object 0</field>
            <field name="value">0</field>
        </record>
    </data>
</odoo>

如果在系统中将 name= "Object 0"改为 name="111"

做模块更新后,仍然是name="111"

Odoo 10 编码规则[英文]