From b4df6400033892def6e89278c0de9f12ea907e41 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Thu, 10 Aug 2017 16:36:31 +0200 Subject: [PATCH] [FIX] ir_model: module import duplicates custom fields Custom fields are duplicated because the cache of method `_existing_field_data` is invalid at the time the model is reflected: it does not contain the field that has just been created. Simply clear the method caches before reflecting models and fields. --- odoo/addons/base/ir/ir_model.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py index ad73a7130a5..f3d65226877 100644 --- a/odoo/addons/base/ir/ir_model.py +++ b/odoo/addons/base/ir/ir_model.py @@ -615,6 +615,7 @@ class IrModelFields(models.Model): raise UserError(_("Many2one %s on model %s does not exist!") % (vals['relation_field'], vals['relation'])) self.pool.clear_manual_fields() + self.clear_caches() # for _existing_field_data() if vals['model'] in self.pool: # setup models; this re-initializes model in registry @@ -675,6 +676,7 @@ class IrModelFields(models.Model): res = super(IrModelFields, self).write(vals) self.pool.clear_manual_fields() + self.clear_caches() # for _existing_field_data() if column_rename: # rename column in database, and its corresponding index if present