Я не смотрел его, но обычно выдается CacheMiss
, когда метод вычисленного поля не вычисляет значение для каждой получаемой записи.
Неправильно:
computed_char_field = fields.Char(compute="_compute_computed_char_field")
some_boolean = fields.Boolean()
def _compute_computed_char_field(self):
for record in self:
if record.some_boolean:
record.computed_char_field = 'something'
Если есть некоторые записи с some_boolean == False
, вы получите CacheMiss
при их вызове (например, в виде списка)
Правильный способ - всегда устанавливать значение, в этом примере просто добавить ветку else:
def _compute_computed_char_field(self):
for record in self:
if record.some_boolean:
record.computed_char_field = 'something'
else:
record.computed_char_field = ''