# 基础介绍
在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)
```