You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo中无法隐藏/修改合并字段campaign_id的问题求助

问题原因及解决办法

可能的原因

  1. 视图定位不精确:标准crm.crm_lead_view_form视图中,campaign_id字段嵌套在特定分组容器内,直接使用//field[@name='campaign_id']可能匹配到多个节点,导致修改未作用到目标字段。
  2. 继承优先级冲突:若其他模块的视图继承在你的视图之后加载,会覆盖你对campaign_id的显示设置。
  3. 字段渲染的潜在逻辑:虽然campaign_id是普通关联字段,但部分Odoo版本中,原视图可能通过分组容器的属性间接控制其显示状态。

解决办法

1. 精确定位目标字段

通过Odoo debug模式打开表单视图的Edit View: Form,找到campaign_id所在的父容器(标准CRM表单中,它位于名为marketing的分组内),使用更具体的XPath表达式修改:

<xpath expr="//group[@name='marketing']/field[@name='campaign_id']" position="attributes">
    <attribute name="invisible">True</attribute>
</xpath>

2. 强制替换字段定义

若修改属性无效,直接替换整个字段节点来设置隐藏:

<xpath expr="//field[@name='campaign_id']" position="replace">
    <field name="campaign_id" invisible="1"/>
</xpath>

3. 提升视图继承优先级

在你的视图记录中添加priority字段,确保你的修改覆盖其他模块的设置(数值越高优先级越高):

<record id="crm_lead_view_form" model="ir.ui.view">
    <field name="name">crm.lead.inherit.view.form</field>
    <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.crm_lead_view_form"/>
    <field name="priority" eval="20"/> <!-- 高于默认优先级0 -->
    <field name="arch" type="xml">
        <!-- 你的修改代码 -->
    </field>
</record>

4. 追加字段到campaign_id后方

如果需要在campaign_id之后添加自定义字段,使用position="after"的XPath:

<xpath expr="//field[@name='campaign_id']" position="after">
    <field name="your_custom_field"/> <!-- 替换为实际字段名 -->
</xpath>

内容的提问来源于stack exchange,提问作者eXe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:05:29