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

如何解决Odoo中onchange函数拼接字段的TypeError报错

解决Odoo字段拼接的TypeError问题

你的报错根源有两个:一是代码里写错了目标字段名(self.field_name应该是self.name);二是当first_name或last_name为空时,会被解析为None或布尔值False,直接和字符串拼接触发类型错误。

修正后的代码

@api.onchange('first_name', 'last_name')
def onchange_name(self):
    # 用or ""将空值转为空字符串,确保拼接的都是字符串类型
    self.name = (self.first_name or "") + " " + (self.last_name or "")

name = fields.Char(string='Name of the Employee', readonly=True)
first_name = fields.Char(string='First Name')
last_name = fields.Char(string='Last Name')

关键说明

  • 修正字段名:把self.field_name改为self.name,对应你定义的只读字段
  • 空值处理:(字段名 or "")会将空的字段(None或空字符串)自动转为空字符串,彻底避免类型不匹配的拼接错误
  • 格式优化:在名和姓之间加空格,让最终显示更符合常规姓名格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:40:32