diff --git a/openerp/fields.py b/openerp/fields.py index 71ded7c4a5e4c01d55dbc17aa76812d1ba70a701..4cfb2879747a52191b43b2c673931a8c6b4e8246 100644 --- a/openerp/fields.py +++ b/openerp/fields.py @@ -418,9 +418,9 @@ class Field(object): def _compute_related(self, records): """ Compute the related field `self` on `records`. """ - for record in records: + for record, sudo_record in zip(records, records.sudo()): # bypass access rights check when traversing the related path - value = record.sudo() if record.id else record + value = sudo_record if record.id else record # traverse the intermediate fields, and keep at most one record for name in self.related[:-1]: value = value[name][:1]