Odoo委托继承删除对应的继承记录class

Odoo delegation inheritance delete corresponding records of inherited class

我使用 _inherits 扩展了默认值 class。我正在使用 Odoo v9.

class new_product_uom(models.Model):  
_inherits = {'product.uom':'uomid', }  
_name = "newproduct.uom" 
uomid = fields.Many2one('product.uom',ondelete='cascade', required=True).
#declare variables and functions specific to new_product_uom
sellable = fields.Boolean('Sell products using this UoM?', default=True)
[...]

如果我删除了product.uom中对应的记录,new_product_uom中的相应记录也被删除了。

如果我要删除一条 new_product_uom 记录,相应的 product_uom 记录不会发生任何变化。

我希望在删除任何一条记录时自动删除这两条记录。有什么办法可以做到这一点?在此先感谢您的帮助。

澄清:

product.uom 是默认的 odoo class。它保存 UoM 记录(英寸、厘米等)。我使用委托继承来扩展这个class。看: https://www.odoo.com/documentation/9.0/howtos/backend.html#model-inheritance

所以,当我为newproduct.uom添加一条记录时,会自动在模型product.uom下创建一条记录。我可以通过在 newproduct.uom 中寻址来分配 product.uom 中相应记录的值。

就我的用途而言,它将作为父->子关系,newproduct.uom 是父对象,默认的 product.uom 是子对象。我选择这种继承方法是为了更快地创建和修改相关值,以及分离函数(而不是覆盖默认操作的默认方法)。

在您的 parent class 覆盖取消链接。不确定我的 class 名称是否正确。删除child条记录,然后删除当前记录。

@api.multi
def unlink(self):
    self.uom_id.unlink()
    return super(new_product_uom, self).unlink()