diff options
Diffstat (limited to 'odoo/fields.py')
| -rw-r--r-- | odoo/fields.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/odoo/fields.py b/odoo/fields.py index 46d65d4e6f4..2838bfbef56 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -963,7 +963,14 @@ class Field(MetaField('DummyField', (object,), {})): self.compute_value(recs) except (AccessError, MissingError): self.compute_value(record) - value = env.cache.get(record, self) + try: + value = env.cache.get(record, self) + except CacheMiss: + if self.readonly: + raise + # fallback to null value if compute gives nothing + value = self.convert_to_cache(False, record, validate=False) + env.cache.set(record, self, value) elif self.type == 'many2one' and self.delegate and not record.id: # parent record of a new record: new record, with the same |
