В поле отношения есть параметр Ondelete. Имеется 3 варианта
- Каскад (удалить, когда поле отношения удаляется.)
- Установить на NULL (установить нулевое значение в поле отношения).
- Ограничить (будет не позволяет удалять, если установлено как отношение.)
Можем ли мы изменить это поведение, чтобы навсегда (жестко) удалить связанную строку?
Для этого Вы должны объявить M2O с 2 параметрами. Это должно быть обязательным, а удаление должно быть каскадным. Пример 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)