Skip to content
Snippets Groups Projects
Commit f9eeb3b4 authored by Adrian Torres's avatar Adrian Torres
Browse files

[FIX] base: restrict m2o with ir models as inverses


Before this revision, any m2o with an ir.* model as inverse could have
the ondelete policy as 'restrict', either by default if it was required
or by setting it explicitly in the field declaration.

This is problematic because ir.* models are reflection models and they
*MUST* be deleted during an uninstall of the module that introduces
them, otherwise tables, fields, constraints, etc. are left in the
database, this is why 'restrict' doesn't make sense UNLESS the unlink is
being performed by an user and not by the system (uninstall).

As a solution, this revision sets the default to cascade if the field is
required, otherwise null.

If the programmer explicitly sets a required m2o field with an ir.*
model as an inverse to ondelete='restrict', it is considered an
unsupported use-case and the registry will crash during loading with a
clear error explaining that it is not supported.

closes odoo/odoo#39739

Signed-off-by: default avatarAdrian Torres (adt) <adt@odoo.com>
parent 3da477df
Branches
Tags
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment