我观察了一个One2many
字段相关的表。当我删除One2many
字段彻底One2many
小部件的一行时,表内的实际行不会被删除。
该行刚刚将外键列设置为NULL
.
我们可以将此行为更改为永久(硬)删除相关行吗?
为什么设计师首先选择这种行为?任何技术考虑为什么?
谢谢
在关系字段中,有参数 Ondelete。它有 3 个选项
我们可以将此行为更改为永久(硬)删除相关行吗?
为此,您必须使用 2 个参数声明 M2O。它必须是必需的,并且 ondelete 必须是级联的。Odoo 示例
class ProductAttribute(models.Model):
_name = "product.attribute"
value_ids = fields.One2many('product.attribute.value', 'attribute_id', 'Values', copy=True)
class ProductAttributeValue(models.Model):
_name = "product.attribute.value"
attribute_id = fields.Many2one('product.attribute', string='Attribute', ondelete='cascade', required=True, index=True)