我有一个带有2个one2many关系的模型(mat_gen和rh_gen)。第一个关系有一个名为“qte”的字段,我希望在“qte”使用onchange方法更改时更新第二个关系。
@api.onchange('qte')
def onchange_qte(self):
mat = self.browse(self._origin.id)
if mat:
mo = self.env["plg.ressource.rh"].browse(mat.ch.id)
if mo:
temp = []
temp.append({
'code': mo.code,
'designation': mo.designation,
'unite': mo.unite.id,
'qte': self.qte,
'aff_pr': self.aff_pr,
'prixu': mo.prixu,
})
在这里,我将访问父模型以更新第二个关系,如self.parent.update({'rh_gen':temp})
但显然父变量不存在。
我怎样才能解决这个问题?提前致谢
答案 0 :(得分:0)
简化您的儿童模型可能看起来像这样:
class child1(models.Model):
_name = 'child1.model'
parent = fields.Many2one('parent.model', 'Parent')
qte = fields.Char('Qte')
# ...
在您的child1 onchange
方法中,您可以通过相应的Many2one
字段访问父对象及其字段:
parent = self.parent
如果您需要创建新的child2记录,您还可以执行以下操作:
self.env['child2.model'].create({'parent': self.parent.id,
'qte': self.qte,
# ...
})