diff --git a/openerp/fields.py b/openerp/fields.py index a679ffbe58b..bd146f6df91 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -598,7 +598,9 @@ class Field(object): assert self.store if self._origin: assert isinstance(self._origin, fields._column) - return self._origin + # some columns are registry-dependent, like float fields (digits); + # duplicate them to avoid sharing between registries + return copy(self._origin) _logger.debug("Create fields._column for Field %s", self) args = {} diff --git a/openerp/models.py b/openerp/models.py index 4f9fc285282..2649a5bed11 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -39,7 +39,6 @@ """ -import copy import datetime import functools import itertools @@ -653,12 +652,6 @@ class BaseModel(object): } cls = type(cls._name, (cls,), attrs) - # float fields are registry-dependent (digit attribute); duplicate them - # to avoid issues - for key, col in cls._columns.items(): - if col._type == 'float': - cls._columns[key] = copy.copy(col) - # instantiate the model, and initialize it model = object.__new__(cls) model.__init__(pool, cr)