如何在 odoo python 文件中使用两个不同的 rec_name

How to use two differents rec_name in odoo python file

我在每个 class 中有两个字段,我需要在 (fn 和 fn_) 之间建立关系 Many2one,在 (ln 和 ln_) 之间建立关系 Many2one。我不能多次使用 _rec_name。

这是我的 python 文件:

class ClassOne(models.Model):
    _name = 'moduleT.one'
    _rec_name = 'fn'
    fn = fields.Char("First name", required=True)

    ln = fields.Char("Last name", required=True)

class ClassTwo(models.Model):
    _name = 'moduleT.two'
    fn_ = fields.Many2one('moduleT.one')
    ln_ = fields.Char("Last name")
    ***#TO DO: ln_ = fields.Many2one(ln)***

你必须使用相关领域,而不是你在做什么。 _rec_name 提供显示名称。

class ClassOne(models.Model):
    _name = 'moduleT.one'

    fn = fields.Char("First name", required=True)
    ln = fields.Char("Last name", required=True)

    @api.multi
    def name_get(self):
        result = []
        for record in self:
            result.append((record.id, " ".join(record.fn, record.ln)))
        return result

class ClassTwo(models.Model):
    _name = 'moduleT.two'

    reference = Many2one('moduleT.one')
    fn_ = fields.Char("First name", related='reference.fn')
    ln_ = fields.Char("Last name", related='reference.ln')

Many2one 字段从一个模型的记录到另一个模型的记录创建关系,因为 ClassTwo 的记录已经与使用字段 referencemoduleT.one 记录相关,您不需要需要多次关联。对于字段到字段的关系,此处使用 related 字段。