Odoo:如何检查模块是否已安装?

时间:2017-12-26 16:34:12

标签: python python-2.7 openerp odoo-9 odoo-10

我想在XML中继承表单视图以设置不可见的某些字段,但有时我不会安装该模块。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以将此代码添加到要修改的视图的模型中:

@api.depends()
def _compute_module_x_installed(self):
    for record in self:
        module = self.env['ir.module.module'].search([
            ('name', '=', 'the_module_name')
        ])
        if module and module.state == 'installed':
            record.update({
                'module_x_installed': True,
            })

module_x_installed = fields.Boolean(
    compute='_compute_module_x_installed',
    string='Is X installed?',
)

这样你就会有一个字段来指示你是否安装了模块。

答案 1 :(得分:0)

您还可以在ir_module_module数据库表的帮助下实现模块的当前状态。

ir.module.module模型Odoo创建一个名为ir_module_module的新数据库表,我们可以使用Pgadmin Tools通过SQL查询搜索模块的状态

select state from ir_module_module where name='Your_module_name(technical_name)';

如果我们得到的结果是'安装' 在out查询中意味着 我们的模块安装在我们的数据库中。