diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 8d3cb9530d9..8b08d81702f 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -322,15 +322,18 @@ class IrModel(models.Model): self.pool.setup_models(self._cr) return res - @api.model - def create(self, vals): - res = super(IrModel, self).create(vals) - if vals.get('state', 'manual') == 'manual': + @api.model_create_multi + def create(self, vals_list): + res = super(IrModel, self).create(vals_list) + manual_models = [ + vals['model'] for vals in vals_list if vals.get('state', 'manual') == 'manual' + ] + if manual_models: # setup models; this automatically adds model in registry self.flush() self.pool.setup_models(self._cr) # update database schema - self.pool.init_models(self._cr, [vals['model']], dict(self._context, update_custom_fields=True)) + self.pool.init_models(self._cr, manual_models, dict(self._context, update_custom_fields=True)) return res @api.model