diff options
| author | Raphael Collet <rco@openerp.com> | 2015-05-05 15:03:06 +0200 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2015-05-05 17:33:16 +0200 |
| commit | 0c665edb66098d95a407a0d2be9351bbea81b2db (patch) | |
| tree | 4ed9585ecfdd7cbeb806c80a1411815fa268b7e0 | |
| parent | 071152216fe44039f75e821b0cbf31344b66d174 (diff) | |
[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`.
| -rw-r--r-- | openerp/models.py | 5 |
1 files changed, 5 insertions, 0 deletions
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 = [] |
