2017-04-26 25 views

回答

0

对于这个你可以使用相同的关系表为many2many领域。如果对两个字段使用相同的关系表,则两个字段中的任何更改都会反映在两者中。

的语法Many2Many领域是: -

fields.Many2many(comodel_name=None, relation=None, column1=None, column2=None, string=None) 

这里comodel_name是目标模型, 的名称和关系是存储在数据库关系表的名称。即它将使用给定名称在数据库中创建一个表,该表存储关系, column1和column2是数据库中关系表的列的名称。

谈论两个对象(表)之间的关系。让我们假设我们的对象是教师和学科,我们想要一个来回的关系,也就是说我们可以将教师添加到主体形式视图的主题中,并且我们还可以从教师形式视图中向教师添加主题,无论哪种方式必须在双方反映。我们可以使用相同的关系表为Many2many字段实现。欲了解更多,请参考代码

class Teacher(models.Model): 
    _name = "teacher.teacher" 

    name = fields.Char(string='Teacher Name') 
    subject_ids = fields.Many2many('subject.subject', 'teacher_sub_rel', 'subject_id', 'teacher_id', string='Teachers') 

class Subject(models.Model): 
    _name = "subject.subject" 

    name = fields.Char(string='Subject Name') 
    teacher_ids = fields.Many2many('teacher.teacher', 'teacher_sub_rel', 'teacher_id', 'subject_id', string='Subject') 

希望这会有所帮助。

0

如果你系车型有one2many员工employee_ids,试试这个:

@api.onchage('department_ids') 
def onchage_department(self): 
     """ 
      new api support this now 
     """ 
     if self.department_ids:      # this is o2m of departement 
      self.employee_ids = self.department_ids.mapped('employee_ids') 
     else: 
      self.employee_ids = False 
相关问题