From 016a1ed37b5ccf2ce3d0098d3a7b83b58e862443 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Wed, 5 Mar 2014 15:05:14 +0100 Subject: [PATCH] [FIX] orm: create a foreign key for the function fields of type many2one and store value bzr revid: mat@openerp.com-20140305140514-2sksy3lwqm07wvjh --- openerp/osv/orm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index f9cfbe1522d..4645ec6bdb9 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -3212,7 +3212,7 @@ class BaseModel(object): msg = "Table '%s': dropping index for column '%s' of type '%s' as it is not required anymore" _schema.debug(msg, self._table, k, f._type) - if isinstance(f, fields.many2one): + if isinstance(f, fields.many2one) or isinstance(f, fields.function) and f._type == 'many2one' and f.store: dest_model = self.pool.get(f._obj) if dest_model._table != 'ir_actions': self._m2o_fix_foreign_key(cr, self._table, k, dest_model, f.ondelete) @@ -3247,7 +3247,7 @@ class BaseModel(object): todo_end.append((order, self._update_store, (f, k))) # and add constraints if needed - if isinstance(f, fields.many2one): + if isinstance(f, fields.many2one) or isinstance(f, fields.function) and f._type == 'many2one' and f.store: if not self.pool.get(f._obj): raise except_orm('Programming Error', 'There is no reference available for %s' % (f._obj,)) dest_model = self.pool.get(f._obj)