From 11f75dd64d5841eb28912c3098a392bfe93ed63c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miquel=20Ra=C3=AFch?= <miquel.raich@forgeflow.com> Date: Tue, 22 Aug 2023 15:55:07 +0000 Subject: [PATCH] [FIX] base: deleting selection fields of non tabled models When a model selection record is going to be deleted, a _process_ondelete method is called in order to delete all the records of the corresponding model that have that selection. These records are obtained by calling _get_records, which uses a query that needs a table. Thus, we should avoid cases for non-abstract models that have _auto = False. closes odoo/odoo#133082 X-original-commit: 408175a727ecbca88957a9d63d8ec28f3e54c9df Signed-off-by: Raphael Collet <rco@odoo.com> --- odoo/addons/base/models/ir_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index d20a4ac04b7e..e0d843d2847a 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -1486,7 +1486,7 @@ class IrModelSelection(models.Model): # the orphaned 'ir.model.fields' down the stack, and will log a # warning prompting the developer to write a migration script. field = Model._fields.get(selection.field_id.name) - if not field or not field.store or Model._abstract: + if not field or not field.store or not Model._auto: continue ondelete = (field.ondelete or {}).get(selection.value) -- GitLab