【问题标题】:Why odoo One2many does not hard delete row?为什么 odoo One2many 不硬删除行?
【发布时间】:2020-04-29 06:09:11
【问题描述】:

我观察到与One2many 字段相关的表。当我彻底删除One2many 字段的一行One2many 小部件时,表中的实际行不会被删除。

该行刚刚将外键列设置为NULL

我们可以将此行为更改为永久(硬)删除相关行吗?

为什么设计师首先选择了这种行为?任何技术考虑为什么?

谢谢

【问题讨论】:

    标签: python odoo odoo-8 one2many


    【解决方案1】:

    在关系字段中,有参数Ondelete。 它有3个选项

    1. 级联(删除关系字段时删除。)
    2. 设置为 NULL(在关系字段中设置空值。)
    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)
    

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2020-06-24
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多