diff --git a/openerp/fields.py b/openerp/fields.py index d4a880c5f43..be5b58ffcf4 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -832,10 +832,13 @@ class Field(object): computed = target.browse(env.computed[field]) if path == 'id': target = records - computed + elif path: + target = (target.browse(env.cache[field]) - computed).filtered( + lambda rec: rec._mapped_cache(path) & records + ) else: target = target.browse(env.cache[field]) - computed - if path: - target = target.filtered(lambda rec: rec._mapped_cache(path) & records) + if target: spec.append((field, target._ids))