Odoo 16:如何通过自定义模块扩展Documents的inspectorFields
Odoo 16 企业版扩展 Documents 模块 Inspector 字段实现方案
1. 模块依赖配置
首先在自定义模块 ateam_adaptations 的 __manifest__.py 中添加对 documents 模块的依赖,确保加载顺序正确:
'depends': ['documents'],
2. 资产文件配置
在模块的 views/assets.xml 中配置自定义 JS 文件的引入,确保加载在 Documents 模块核心 JS 之后:
<?xml version="1.0" encoding="utf-8"?> <odoo> <template id="assets_backend" name="ateam_adaptations assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/ateam_adaptations/static/src/js/documents_inspector_extension.js"/> </xpath> </template> </odoo>
记得将该 XML 文件添加到 __manifest__.py 的 data 列表中。
3. 编写扩展 JS 代码
创建 static/src/js/documents_inspector_extension.js 文件,通过 ES6 模块导入原数组并添加目标字段:
// 导入 Documents 模块的 inspectorFields 数组 import { inspectorFields } from '@documents/views/inspector/inspector_fields'; // 向数组中添加 document_type_id 字段配置 inspectorFields.push({ name: 'document_type_id', type: 'many2one', relation: 'documents.document.type', string: '文档类型', // 可按需添加其他属性,比如 readonly、widget 等 });
注:若不确定导入路径,可直接查看 Documents 模块源码中 inspectorFields 的导出文件位置,确保路径匹配。
4. 验证生效
- 升级
ateam_adaptations模块 - 刷新页面后,查看文档右侧 inspector 面板,确认「文档类型」字段已显示
内容的提问来源于stack exchange,提问作者Muhammad Osama
相关产品推荐
相关产品推荐

