odoo:从one2many关系更新父字段

时间:2017-02-06 11:38:46

标签: python-2.7 odoo-8

我有一个带有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}) 但显然父变量不存在。 我怎样才能解决这个问题?提前致谢

1 个答案:

答案 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,
                                # ...
                                })