技巧一 Many2many 类型的反向关联

我们知道对于One2many类型的字段,我们要创建目标对象的一个目标字段作为反向关联,以方便我们在目标对象中对源对象进行引用。

class A(models.Model):
    _name = "A"

    field1 = fields.One2many("B","p_id",string="字段1")

class B(models.Model):

    _name = "B"

    p_id = fields.Many2one("A",string="PID")

那么,对于Many2many类型的字段,我们是否也可以在目标对象中建立反向关联字段呢?

答案是肯定的,但是不同于One2many,我们需要通过一中稍微曲线一些的方式进行。我们知道Many2many字段的第二、三、四个参数分别对应关系表、源对象的字段和目标对象的字段。

我们建里反向字段的方法就是在目标对象中建立一个回溯的字段,使用相同的表名,把关联字段顺序颠倒即可。


class A(models.Model):
    _name = "A"

    field1 = fields.Many2many("B","a_b_rel","a","b",string="字段1")

class B(models.Model):

    _name = "B"

    field2 = fields.Many2one("A","a_b_rel","b","a",string="字段2")

results matching ""

    No results matching ""