From 0c665edb66098d95a407a0d2be9351bbea81b2db Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 5 May 2015 15:03:06 +0200 Subject: [PATCH] [FIX] models: make sure an environment is available when we access field.digits Accessing `field.digits` can crash if no environment is available at that point. This happens in function `get_pg_type()`, which is called from method `_auto_init()`. An environment is simply created in the method's scope to be available for `field.digits`. --- openerp/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openerp/models.py b/openerp/models.py index fda46834332..6beffe5072f 100644 --- a/openerp/models.py +++ b/openerp/models.py @@ -2431,6 +2431,11 @@ class BaseModel(object): # has not been added in database yet! context = dict(context or {}, prefetch_fields=False) + # Make sure an environment is available for get_pg_type(). This is + # because we access column.digits, which retrieves a cursor from + # existing environments. + env = api.Environment(cr, SUPERUSER_ID, context) + store_compute = False stored_fields = [] # new-style stored fields with compute todo_end = []