Odoo:如何将领域相互链接?

时间:2015-08-04 16:20:25

标签: python many-to-many one-to-many odoo many-to-one

我正在尝试链接Odoo中不同类的字段。 它应该类似于外键。

这是我的情况: 有两个类有自己的树视图。

第1类:opc_taginstellingen:

class opc_taginstellingen(models.Model):
    _name = 'opc_taginstellingen'

    Tagnaam = fields.Char(string="Tagnaam")
    Unit = fields.Char(string="Unit")

第2课:opc_actuelewaardentags

class opc_actuelewaardentags(models.Model):
    _name = 'opc_actuelewaardentags'

    TagNaam = fields.Char(string="Tagnaam")
    TagWaarde = fields.Integer(string="Tagwaarde")

我现在想做的是:

在opc_actuelewaardentags中,从opc_taginstellingen获取Unit,其中TagNaam(opc_actuelewaardentags)== Tagnaam(opc_actuelewaardentags)。

然后我希望能够在opc_actuelewaardentags的树形视图中显示Unit。但我想这不会成为一个问题。

另请注意区别标记 n aam和标记 N aam。

到目前为止我尝试了什么:

我一直在玩关系领域,很多人,很多人,很多人。无法让它工作......

这是我在课堂上提出的opc_actuelewaardentags,但没有成功:

Unit1 = fields.Many2one('opc_taginstellingen', string="Unit1")
Unit1 = fields.Related('Unit', type="Many2One", relation="opc_taginstellingen", string="Unit1")
Unit1 = fields.Char(related='opc_taginstellingen.Unit', store=True)

编辑:在BSL Technologies'之后评论,我已将所有内容更改为小写,以免出现问题。

没有错误。但是单位的值不会在opc_actuelewaardentags的树形视图中显示。标题确实如此。

这是我现在的代码:

class opc_taginstellingen(models.Model):
    _name = 'opc_taginstellingen'

    tagnaam = fields.Char(string="Tagnaam")
    unit = fields.Char(string="unit")

class opc_actuelewaardentags(models.Model):
    _name = 'opc_actuelewaardentags'

    tagnaam = fields.Char(string="Tagnaam")      
    opc_tag = fields.Many2one('opc_taginstellingen', string="unit")
    unit = fields.Char(related='opc_tag.unit',string="unit")

还有什么其他原因不起作用吗?

1 个答案:

答案 0 :(得分:1)

此字段需要添加到opc_actuelewaardentags类。

opc_tag = fields.Many2one('opc_taginstellingen', string="Unit1")
unit = fields.Char(related='opc_tag.Unit',string="Unit")