Odoo CRM看板视图绑定字段值至属性时出现未定义问题
问题解决:CRM看板按钮链接显示undefined
核心原因
看板视图默认只会加载视图中声明的字段,你的自定义按钮用到的whatsapp字段未被包含在原看板视图的字段列表里,导致前端无法获取该字段值,最终显示undefined。
修复步骤
1. 加载目标字段到看板视图
在继承视图中添加字段声明,将whatsapp字段加入看板视图的字段集合:
<odoo> <record id="view_crm_lead_kanban_inherit" model="ir.ui.view"> <field name="name">crm.lead.kanban.inherit</field> <field name="model">crm.lead</field> <field name="inherit_id" ref="crm.crm_case_kanban_view_leads"/> <field name="arch" type="xml"> <!-- 新增:添加需要加载的字段 --> <xpath expr="//kanban" position="attributes"> <attribute name="fields">whatsapp</attribute> </xpath> <!-- 原有按钮代码 --> <xpath expr="//div[hasclass('o_kanban_record_subtitle')]" position="after"> <div class="o_kanban_record_action"> <a name="btn_whatsapp" class="btn btn-sm btn-secondary o_kanban_button_custom" t-attf-href="https://wa.me/{{record.whatsapp.raw_value}}?text=Hello" t-attf-target="_blank"> Whatsapp </a> </div> </xpath> </field> </record> </odoo>
2. 优化链接表达式写法
调整t-attf-href的模板写法,将变量部分单独放入表达式,避免字符串拼接错误。如果whatsapp是普通字符字段,直接使用record.whatsapp.raw_value即可;如果是关联字段,需根据实际字段结构调整(比如record.whatsapp.phone.raw_value)。
3. 字段空值处理(可选)
若whatsapp字段可能为空,建议添加判断逻辑,避免生成无效链接:
<a name="btn_whatsapp" class="btn btn-sm btn-secondary o_kanban_button_custom" t-if="record.whatsapp.raw_value" t-attf-href="https://wa.me/{{record.whatsapp.raw_value}}?text=Hello" t-attf-target="_blank"> Whatsapp </a>
4. 验证字段存在性
确认crm.lead模型确实存在whatsapp字段,若为自定义字段,需确保字段已正确创建且对应模块已安装。
内容的提问来源于stack exchange,提问作者Sadegh Ghanbari
相关产品推荐
相关产品推荐

