diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-02-20 13:40:48 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-02-20 13:40:48 +0100 |
| commit | f1ff55bca1242af86cd5feedbf7c4793b96174a1 (patch) | |
| tree | 164453a9cf678e004c2ae82819c51fbd57c0b6ae /odoo/api.py | |
| parent | 716a272480e649db721c081605368e1bccf8dc91 (diff) | |
| parent | de8cefcef4d456398e5028c52e3bd9db807e5f8a (diff) | |
[MERGE] forward port branch 11.0 up to de8cefcef4d
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 9b904c497f3..f8332a8c762 100644 --- a/odoo/api.py +++ b/odoo/api.py @@ -55,7 +55,7 @@ from weakref import WeakSet from decorator import decorator from werkzeug.local import Local, release_local -from odoo.tools import frozendict, classproperty, StackMap +from odoo.tools import frozendict, classproperty, StackMap, pycompat _logger = logging.getLogger(__name__) @@ -965,13 +965,18 @@ class Cache(object): def get(self, record, field): """ Return the value of ``field`` for ``record``. """ key = record.env.cache_key(field) - value = self._data[key][field][record.id] + value = self._data[key][field][record._ids[0]] return value.get() if isinstance(value, SpecialValue) else value 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``. """ |
