在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"