noupdate 数据属性
升级模块时,会重新加载数据并重写模块记录。要谨记这可能意味着在升级模块时会重写任何对模块数据的手动更改。
“ 小贴士: 值得注意的是,手动对视图所做的自定义修改会在下一次模块升级时丢失。避免这一问题正确的方法是创建继承视图来引入要做的修改。 ”
这种重写行为是默认的,但可以修改有些数据仅在安装时导入,后续模块更新时则予以忽略,这正是通过或元素中的 noupdate=” 1″来实现的。
这对于需初始化配置且预期需自定义的数据来说非常有用,因为这些手动修改在模块更新时是安全的。例如在记录访问规则中经常使用,可以适应具体的实施需求。
在同一 XML 文件中可以有多个版块。可通过这个来分隔仅需导入一次的数据(noupdate=” 1″)和需在每次更新时重新导入的数据(noupdate=” 0″)。 noupdate=” 0″是默认值,所以可以省略不写。注意还必须要有一个外层 XML 元素,就这个例子而言,使用两个标签,并在外层包裹一个或元素。
“ 小贴士: noupdate 属性在开发模块时可能会引起不适,因为会忽略后续修改。一个解决方案是,使用-i 参数重新安装模块而不是使用-u 参数进行更新。命令行中使用-i 参数重新安装会忽略数据记录中的 noupdate 标记。 ”
noupdate 标记存储在每条记录的外部标识符信息中。可通过 Technical 菜单中的 ExternalIdentifiers 表单手动编辑,勾选 Non Updatable 复选框即可。
“ 注意: Odoo 12 的修改点击开发者菜单中的 View Metadata 时,现在在弹出的对话框中 XML ID 下面还会显示 NoUpdate 的值。并且在该处可通过点击来修改该标记的值。 ”