删除Odoo代码与视图字段后,如何避免“模型中无此字段”错误
Odoo删除字段后规避“字段不存在于模型”错误的解决方法
强制刷新模块视图缓存
重启Odoo时带上--update all参数,执行命令示例:./odoo-bin --update all -c odoo.conf该命令会强制更新所有模块的视图定义,覆盖数据库中存储的旧视图缓存。如果仅涉及特定模块,可指定模块名缩小范围,比如
--update your_module_name,提升更新效率。手动清理数据库中的旧视图记录
登录数据库(通过psql或pgAdmin工具),先查询包含已删除字段的视图:SELECT id, name, arch FROM ir_ui_view WHERE arch LIKE '%你的已删除字段名%';找到对应记录后,可直接删除该视图记录,或更新
arch字段,移除其中涉及已删除字段的代码片段。操作前必须备份数据库,避免误操作引发数据丢失。用开发者模式修复视图
开启Odoo开发者模式,通过「技术 -> 用户界面 -> 视图」找到目标视图,直接编辑arch字段,删除残留的已删除字段引用。若对应视图无法正常打开,也可在此列表中直接修改保存。提前做迁移预处理
不要直接删除字段,先在Python代码里给要删除的字段添加deprecated=True属性,部署后重启Odoo,让系统同步更新视图缓存。确认视图不再引用该字段后,再彻底删除Python代码中的字段定义和XML里的相关配置,从根源避免新旧文件不一致的问题。
内容的提问来源于stack exchange,提问作者Fr4sha
相关产品推荐
相关产品推荐

