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