odoo 一日一技 系统参数 config_parameter

发布时间:2024年01月17日

# 基础介绍

在Odoo中,ir.config_parameter是一个特殊的模型,它用于存储全局配置参数。这些参数是全局的,可以在任何地方访问,而且它们的值在数据库中是持久化的。

你可以使用config_parameter模型来存储各种配置数据,比如API密钥、URL、系统设置等。你可以使用get_param方法来获取参数的值,使用set_param方法来设置参数的值。

# 使用示例

在继承增加配置时,字段一定要加上config_parameter参数命名,否则不会保存到ir.config_parameter模型中

```python

class ResConfigSettings(models.TransientModel):

? ? _inherit = 'res.config.settings'

? ? wechat_controllers = fields.Char(string='Wechat Record Url',default='http://',config_parameter='wechat_controllers')

```

获取参数

api_key = self.env['ir.config_parameter'].sudo().get_param('my_module.api_key')

设置参数

self.env['ir.config_parameter'].sudo().set_param('my_module.api_key', 'new_value')

# 注意

注意,由于config_parameter模型存储的数据是敏感的,所以通常需要使用sudo方法来提升权限。


?

另外,config_parameter模型的参数是以字符串的形式存储的,所以如果你需要存储非字符串的数据,你需要自己进行转换。例如,如果你需要存储一个布尔值,你可以将它转换为字符串'True'或'False',然后在获取值时再转换回布尔值。

```python

class IrConfigParameter(models.Model):

? ? """Per-database storage of configuration key-value pairs."""

? ? _name = 'ir.config_parameter'

? ? _description = 'System Parameter'

? ? _rec_name = 'key'

? ? _order = 'key'

? ? key = fields.Char(required=True)

? ? value = fields.Text(required=True)

```

文章来源:https://blog.csdn.net/qq_40815295/article/details/135642283
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。