Odoo 限制删除仍被引用的记录 (m2m)

Odoo restrict delete of record that is still referenced (m2m)

我有这个字段:

range_application_ids = fields.Many2many('insurance.commission.rule.range.application', 'application_rule_range_rel', 'rule_range_id',
    'application_id', 'Applications', ondelete='restrict', required=True)

如果通过 Many2many 关系引用,我需要限制删除该模型 (insurance.commission.rule.range.application) 记录。现在,如果我转到那个模型记录列表并删除其中的任何一个,Odoo 将不会发出任何警告并让我这样做。然后,当我通过 many2many 字段找到另一个与 insurance.commission.rule.range.application 相关的模型记录时,我看到它已被删除(并且该字段是必需的)。设置 ondelete='restrict' 没有做任何事情。

有没有办法使用 Odoo 标准功能来限制此类删除,或者我需要自己实施此类检查?

现在我自己实施了这样的约束,但是如果有人知道如何使用标准方法来做到这一点,请post另一个答案。这是代码(它进入 insurance.commission.rule.range.application 模型(或 class 换句话说):

@api.multi
def unlink(self):
    range_obj = self.env['insurance.commission.rule.range']
    rule_ranges = range_obj.search([('range_application_ids', 'in', self.ids)])
    if rule_ranges:
        raise Warning(_("You are trying to delete a record that is still referenced!"))
    return super(insurance_commission_rule_range_application, self).unlink()