diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 8b08d81702f..87987531f8c 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -1319,16 +1319,22 @@ class IrModelSelection(models.Model): @api.model_create_multi def create(self, vals_list): field_ids = {vals['field_id'] for vals in vals_list} + field_names = set() for field in self.env['ir.model.fields'].browse(field_ids): + field_names.add((field.model, field.name)) if field.state != 'manual': raise UserError(_('Properties of base fields cannot be altered in this manner! ' 'Please modify them through Python code, ' 'preferably through a custom addon!')) recs = super().create(vals_list) - # setup models; this re-initializes model in registry - self.flush() - self.pool.setup_models(self._cr) + if any( + model in self.pool and name in self.pool[model]._fields + for model, name in field_names + ): + # setup models; this re-initializes model in registry + self.flush() + self.pool.setup_models(self._cr) return recs