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
相关产品推荐
相关产品推荐

