如何在Odoo CRM线索视图添加新字段?模块激活报错求助
问题解决:Odoo CRM线索新增字段显示失败
核心错误原因
你使用的crm.crm_case_form_view_leads视图外部ID在当前Odoo版本中不存在——不同版本的CRM线索表单视图ID存在差异,旧版本的ID已被新版替换,这是激活模块报错的直接原因。
解决步骤
1. 获取正确的视图外部ID
开启调试模式,打开任意一条CRM线索的表单页面,点击右上角编辑视图按钮,在弹出的视图编辑界面顶部,就能看到当前表单视图的外部ID(Odoo13及以上版本通常为crm.crm_lead_view_form)。
2. 修改XML配置
将原配置中inherit_id引用的ID替换为刚才获取到的正确ID,以下是修改后的示例:
示例1:新增独立标签页显示字段
<?xml version="1.0"?> <odoo> <record id="crm_lead_view_form_custom" model="ir.ui.view"> <field name="name">crm.lead.view.form.custom</field> <field name="model">crm.lead</field> <!-- 替换成你获取到的正确视图ID --> <field name="inherit_id" ref="crm.crm_lead_view_form"/> <field name="arch" type="xml"> <xpath expr="//form/sheet/notebook/page[@name='internal_notes']" position="after"> <page string="X App Type"> <group> <field name="x_app_type"/> </group> </page> </xpath> </field> </record> </odoo>
示例2:在电话字段后添加字段
<odoo> <record id="view_crm_lead_form_custom" model="ir.ui.view"> <field name="name">crm.lead.form.view.custom</field> <field name="model">crm.lead</field> <!-- 替换成你获取到的正确视图ID --> <field name="inherit_id" ref="crm.crm_lead_view_form" /> <field name="arch" type="xml"> <field name="phone" position="after"> <field name="x_app_id"/> </field> </field> </record> </odoo>
3. 额外检查项
- 确保模块依赖CRM模块:在模块根目录的
__manifest__.py文件中,depends列表需包含'crm',示例:'depends': ['base', 'crm'], - 确认
x_app_type和x_app_id字段已在模型文件(如models/crm_lead.py)中正确定义 - 修改完成后,在Odoo应用列表中找到你的模块,点击升级(而非重新激活)
内容的提问来源于stack exchange,提问作者Ricardo Martins
相关产品推荐
相关产品推荐

