我添加了一种方法来对老师的课程进行研究,然后他在院子里添加课程(这门课程有几节课,每节课只有一位老师) 我的问题是,当我单击该按钮时,表格没有更新,他在每次点击下方添加了另一行
这是我的代码
teacher_ids = fields.One2many('school.teacher', 'course_id', string='Teacher')
def get_teachers (self):
lesson = self.env['school.lesson'].search([])
teacher_list = []
for rec in lesson:
if rec.course_id.id == self.id:
print(rec.teacher_id.name)
teacher_list.append([0,0,{
'teacher_name': rec.teacher_id.id,
'lesson_id': rec.id,
}])
print('teacher_list',teacher_list)
self.write({'teacher_ids' : teacher_list})
return
我发现了
(6, 0, [IDs]) replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)
但我不知道该方法如何使用
答案 0 :(得分:1)
首先放入
self.teacher_ids = [(6, 0, [])]
然后使用
更新self.write({'teacher_ids' : teacher_list})
它将起作用:
def get_teachers (self):
lesson = self.env['gestcal.lesson'].search([])
teacher_list = []
for rec in self.lesson_id:
teacher_list.append([0,0,{
'teacher_name': rec.teacher_id.id,
}])
print('teacher_list',teacher_list)
self.teacher_ids = [(6, 0, [])]
self.write({'teacher_ids' : teacher_list})
return
答案 1 :(得分:0)
您不能在one2many字段中使用(6,0,[IDs])。由于official document说。
- (4,id,_) 将现有ID的ID记录添加到集合中。不能在One2many上使用。
- (5,_,_) 从集合中删除所有记录,相当于在每个记录上显式使用命令3。不能在One2many上使用。不能在create()中使用。
您应该替换为此
self.teacher_ids = self.env['your_teachers_model'].search([('id', 'in', [(rec.id) for rec in lesson])])