4


我正在努力在 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)的错误,并且我的数据库已损坏。这是完整的日志:错误日志

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

我还检查了 aero 模块,但它仅适用于 8.0 和 9.0。
你能帮助我吗?你有我的替代品吗?

4

1 回答 1

9

我没有看过它,但是CacheMiss当计算字段方法没有为它获得的每条记录计算值时,通常会抛出 a 。

错误的:

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 = ''
于 2020-04-08T09:26:56.303 回答