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

Odoo技术问题:tipoCargo字段显示对象标识而非职位名称

问题:Empleados视图中tipoCargo字段显示格式异常

在Empleados视图的tipoCargo字段(关联upobebe.cargo模型的Many2one字段)中,当前下拉选项显示为model.class: id格式,需要改为显示对应职位的名称。

解决方案1:使用Odoo默认显示字段(推荐)

Odoo默认将模型中的name字段作为Many2one字段的显示值,直接修改Cargo模型的字段名即可:

修改后的Cargo模型代码:

from odoo import models, fields, api

class Cargo(models.Model):
    _name = 'upobebe.cargo'
    _description = 'Lista de cargos'

    name = fields.Char("Cargo del empleado", required=True)
    
    transacciones = fields.One2many("upobebe.empleados", 'tipoCargo', 'Cargo')

    _sql_constraints = [('cargo_name_unique', 'UNIQUE (name)', 'El identificador del cargo debe ser unico')]

修改后更新模块,Odoo会自动用name字段的值作为tipoCargo选项的显示文本。

解决方案2:自定义name_get方法

若不想修改现有字段名,可在Cargo模型中定义name_get方法,指定显示内容:

修改后的Cargo模型代码:

from odoo import models, fields, api

class Cargo(models.Model):
    _name = 'upobebe.cargo'
    _description = 'Lista de cargos'

    id_cargo = fields.Char("Cargo del empleado", required=True)
    
    transacciones = fields.One2many("upobebe.empleados", 'tipoCargo', 'Cargo')

    _sql_constraints = [('cargo_id_cargo_unique', 'UNIQUE (id_cargo)', 'El identificador del cargo debe ser unico')]

    def name_get(self):
        result = []
        for record in self:
            result.append((record.id, record.id_cargo))
        return result

该方法返回每个职位记录的ID和要显示的文本(这里使用id_cargo字段的值),Odoo会以此作为tipoCargo选项的显示内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:46:27