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

Odoo 15中如何格式化显示Many2many字段并自动赋值?

解决Odoo 15中Many2many字段在name_get方法中的格式化问题

原代码无法运行的核心原因是:users_ids是Many2many字段,直接访问record.users_ids.name得到的是用户记录集的name字段集合(而非单个字符串),无法直接用于字符串格式化。

你可以通过以下方式将多个参与者的名称拼接成可读字符串:

修改后的name_get方法

def name_get(self):
    result = []
    for record in self:
        # 将所有参与者名称用逗号拼接,若无参与者则显示"无参与者"
        user_names = ', '.join(record.users_ids.mapped('name')) or "无参与者"
        display_name = f"{user_names} | {record.period_start} - {record.period_end}"
        result.append((record.id, display_name))
    return result

关键说明

  • record.users_ids.mapped('name'):遍历users_ids记录集中的每个用户,提取name字段值,返回一个字符串列表(如['张三', '李四'])。
  • ', '.join(...):将列表中的名称用逗号加空格拼接成单个字符串,方便展示。
  • 用or "无参与者"处理没有参与者的场景,避免显示空内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:52:12