我使用 models.TransientModel
在 Odoo 中进行了自定义配置设置,并实现了 get_default
和 set
函数。我这样做的方式与这个问题的答案中显示的方式相同
Set and get store data Odoo with TransientModel
模块安装后,设置为空。如何在安装时获得该配置设置的默认值?
我尝试过使用 init
函数。
def init(self, cr):
config = self.pool.get("ir.config.parameter")
config_value = {
"value": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4d3f2c232922202c29293f283e3e0d2a202c2421632e2220" rel="noreferrer noopener nofollow">[email protected]</a>",
"key": "myapplication.email_address"
}
config.create(cr, uid, config_value, context=None)
没有成功。
最佳答案
您可以通过 getter 和 setter 方法来完成,如下所示:
class ClassName(models.TransientModel):
_inherit = 'res.config.settings'
key = fields.Char()
value = fields.Char()
@api.model
def get_default_key_values(self, fields):
return {
'key': "myapplication.email_address",
'value': "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e193808f858e8c80858593849292a1868c80888dcf828e8c" rel="noreferrer noopener nofollow">[email protected]</a>",
}
@api.multi
def set_key_values(self):
self.ensure_one()
ICP = self.env['ir.config_parameter']
ICP.set_param('key', self.key)
ICP.set_param('value', self.value)
关于python - 在模块安装中设置 Odoo 的配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121531/