Odoo 13:如何解决 CacheMiss 异常

Odoo 13: How to solve CacheMiss Exception


我正在努力在 Odoo 13 上生成一个 .docx 文档,我检查了 "report_py3o" 模块但是没有 Odoo 13 的版本所以我决定进行某种迁移(我刚刚删除了“@api.multi") 从 Odoo 12 版本到 Odoo 13。我收到类似 odoo.exceptions.CacheMiss 的错误:('ir.actions.report(85,).is_py3o_report_not_available', None) 并且我的数据库已损坏.这是完整的日志:error log.

odoo.exceptions.CacheMiss: ('ir.actions.report(85,).is_py3o_report_not_available', None)

我也检查了 aero 模块,但它仅适用于 8.0 和 9.0。
你能帮助我吗?你有其他选择吗?

我没有关注它,但是当计算字段方法没有为它获取的每条记录计算值时,通常会抛出 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 = ''