Odoo 19中联系人字段动态域筛选配置问题求助
Odoo 19 动态域筛选配置错误原因及解决方法
错误原因
你配置的域表达式[('x_contact_group_id', '=', x_offer_group_id)]中,x_offer_group_id被Odoo Studio当作字符串字面量处理,系统会尝试匹配联系人的x_contact_group_id等于文本"x_offer_group_id",而非当前报价单记录中该字段的实际值,这直接导致筛选逻辑失效。
正确配置方法
方法1:通过Odoo Studio界面配置
- 打开报价单模型的联系人字段编辑弹窗,找到「域」设置项
- 将域表达式修改为:
[('x_contact_group_id', '=', eval('x_offer_group_id'))] - 这里的
eval()函数会触发Odoo解析并获取当前报价单记录中x_offer_group_id的实际值,实现动态关联筛选
方法2:通过XML代码配置(适合开发场景)
如果有权限修改模块代码,可直接在字段定义中设置域:
<field name="partner_id" domain="[('x_contact_group_id', '=', x_offer_group_id)]"/>
XML中的域会直接解析字段引用,无需额外eval(),配置完成后重启模块即可生效。
注意事项
- 确认报价单模型的
x_offer_group_id字段与联系人模型的x_contact_group_id字段类型一致(均为关联contactgroups模型的many2one字段) - 测试时需先给报价单选择对应组,才能看到同组联系人的筛选效果;若未选组,联系人字段会显示所有符合基础条件的联系人
内容的提问来源于stack exchange,提问作者Rene Simmers
相关产品推荐
相关产品推荐

