【问题标题】:odoo: Update parent field from one2many relationodoo:从 one2many 关系更新父字段
【发布时间】:2017-02-06 11:38:45
【问题描述】:

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

【问题讨论】:

    标签: python-2.7 odoo-8


    【解决方案1】:

    您的子模型简化后可能看起来像这样:

    class child1(models.Model):
        _name = 'child1.model'
        parent = fields.Many2one('parent.model', 'Parent')
        qte = fields.Char('Qte')
        # ...
    

    在你的child1onchange方法中,你可以通过对应的Many2one字段访问父对象及其字段:

    parent = self.parent
    

    如果你需要新建一条child2记录,你也可以这样做:

    self.env['child2.model'].create({'parent': self.parent.id,
                                    'qte': self.qte,
                                    # ...
                                    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多