diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-02-20 17:37:22 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-02-20 17:37:22 +0100 |
| commit | db1c7765cba0692cfc4eda34ead000b048da4dae (patch) | |
| tree | 34e351e1714858f9b607e216f505b3e4ce453115 /odoo/api.py | |
| parent | 7151f98358fc3cab13c1cc7400c5e0b58d662978 (diff) | |
| parent | 2c495502aa37374f3748d9ff4ab7cf9e8d9a6d6e (diff) | |
[MERGE] forward port branch saas-11.3 up to 2c495502aa3
Diffstat (limited to 'odoo/api.py')
| -rw-r--r-- | odoo/api.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/odoo/api.py b/odoo/api.py index dffbc0e633a..a415461296e 100644 --- a/odoo/api.py +++ b/odoo/api.py @@ -55,7 +55,7 @@ from weakref import WeakSet from decorator import decorate, decorator from werkzeug.local import Local, release_local -from odoo.tools import frozendict, classproperty, StackMap +from odoo.tools import frozendict, classproperty, StackMap, pycompat from odoo.exceptions import CacheMiss _logger = logging.getLogger(__name__) @@ -1036,7 +1036,7 @@ class Cache(object): """ Return the value of ``field`` for ``record``. """ key = record.env.cache_key(field) try: - value = self._data[key][field][record.id] + value = self._data[key][field][record._ids[0]] except KeyError: raise CacheMiss(record, field) @@ -1045,7 +1045,12 @@ class Cache(object): def set(self, record, field, value): """ Set the value of ``field`` for ``record``. """ key = record.env.cache_key(field) - self._data[key][field][record.id] = value + self._data[key][field][record._ids[0]] = value + + def update(self, records, field, values): + """ Set the values of ``field`` for several ``records``. """ + key = records.env.cache_key(field) + self._data[key][field].update(pycompat.izip(records._ids, values)) def remove(self, record, field): """ Remove the value of ``field`` for ``record``. """ |
