如何在模块安装上调用函数或执行代码(不更新)? 那有特定的功能吗?
我想在模块安装上执行此代码:
all_countries = self.env['res.country'].search([])
for country in all_countries:
_logger.error(country.name)
答案 0 :(得分:7)
执行此操作的最佳方法是使用data
文件。
noupdate="1"
标志创建数据文件
function
元素以触发相应的python方法您可以查看文档here了解详细信息,但最终结果如下所示:
<强> __的OpenERP __。PY 强>
{
...
'data': [
...
'data/data.xml',
...
],
...
}
<强> /data/data.xml 强>
<openerp>
<data noupdate="1">
<function model="res.country" name="method_name"/>
</data>
</openerp>
<强> /models/country.py 强>
from openerp import models
import logging
_logger = logging.getLogger(__name__)
class ResCountry(models.Model):
_inherit = 'res.country'
@api.model
def method_name(self):
for country in self.search([]):
_logger.error(country.name)
答案 1 :(得分:1)
我已经实现了一个解决方法,可以在安装/卸载时运行任意代码,详细信息为described here。在您的情况下,编写代码的合适函数是建议的解决方法中的lodash.debounce
方法。