odoo 继承 res.config.settings模型
2020-07-07 本文已影响0人
隔壁小红馆
res.config.settings 是个瞬态的,会被定时清理。
在这里设置的东西,被清理后,这些配置数据是怎么生效的????
刚开始定义的 res.config.settings 模型的字段是这样的,但是因为是瞬态的,被清理后就没有了,怎么保存都是下次不见保存的数据了
查阅资料添加以下属性:
config_parameter=‘模块名.本字段’
保存后既可应用
class MyConfigWizard(models.TransientModel):
_name = 'my.settings'
_inherit = 'res.config.settings'
default_foo = fields.type(..., default_model='my.model')
group_bar = fields.Boolean(..., group='base.group_user',implied_group='my.group')
module_baz = fields.Boolean(...)
config_qux = fields.Char(..., config_parameter='my.parameter')
other_field = fields.type(...)
可以看到配置类上的字段分以上5种类型, 也就是:
名字以default_开头,系统会根据设置的值来设置全局的ir.default值
名字以group_开头,系统会根据设置的值来配置res.group值
名字以module_baz, 系统会根据设置,安装或卸载baz模块
字段定义中包含config_parameter属性,系统将设置的值记录到ir.config_parameter表中,其key为config_parameter的值(上例中为:my.parameter), value为本配置字段的值
其他字段,则需要继承set_value方法以设定存储的地点,而get_value中设置获取值的方法
当打开配置界面时系统会自动调用res.config.settings类的default_get方法,而该方法定义了如何获取这5类字段的设置值的方法。