[IMP] fields: initialized computed fields to a null value instead of a failed one

This should ease compute methods that assign a list to "update" a
one2many/many2many field.  With a failed value, the update crashes.
This commit is contained in:
Raphael Collet 2014-10-22 17:00:23 +02:00
parent 0bbb449d27
commit 0873613767
1 changed files with 2 additions and 4 deletions

View File

@ -792,11 +792,9 @@ class Field(object):
def _compute_value(self, records):
""" Invoke the compute method on `records`. """
# mark the computed fields failed in cache, so that access before
# computation raises an exception
exc = Warning("Field %s is accessed before being computed." % self)
# initialize the fields to their corresponding null value in cache
for field in self.computed_fields:
records._cache[field] = FailedValue(exc)
records._cache[field] = field.null(records.env)
records.env.computed[field].update(records._ids)
self.compute(records)
for field in self.computed_fields: