diff options
Diffstat (limited to 'odoo/api.py')
| -rw-r--r-- | odoo/api.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/odoo/api.py b/odoo/api.py index d1b1872e7f5..2d2bae74e1a 100644 --- a/odoo/api.py +++ b/odoo/api.py @@ -56,6 +56,7 @@ from decorator import decorator from werkzeug.local import Local, release_local from odoo.tools import frozendict, classproperty, StackMap +from odoo.exceptions import CacheMiss _logger = logging.getLogger(__name__) @@ -958,7 +959,11 @@ class Cache(object): def get(self, record, field): """ Return the value of ``field`` for ``record``. """ key = field.cache_key(record) - value = self._data[field][record.id][key] + try: + value = self._data[field][record.id][key] + except KeyError: + raise CacheMiss(record, field) + return value.get() if isinstance(value, SpecialValue) else value def set(self, record, field, value): |
