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

时间:2019-02-28 14:51:43

标签: python odoo

每个类中都有两个字段,我需要在(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)***

1 个答案:

答案 0 :(得分:0)

您必须使用相关字段,而不是要做什么。 _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的记录已经与moduleT.one记录相关,并且在此处使用字段reference,您没有需要多次联系。对于字段到字段的关系,此处使用related字段。