本文示例代码可查看github仓库:odoo13_custom_config_item
配置项效果图
odoo中给系统添加配置项有两种方式,
一种是使用odoo自带的设置,在设置中添加配置项;效果如下图,
第二种是在模块中自定义一个配置项管理菜单,在菜单form视图下添加配置项;效果如下图,
使用odoo自带配置项
添加model
models/res_config_settings.py
from odoo import models, fields, api class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' dingtalk_corp_id = fields.Char(string='钉钉corpId') dingtalk_app_key = fields.Char(string='钉钉AppKey') dingtalk_app_secret = fields.Char(string='钉钉AppSecret') dingtalk_agent_id = fields.Char(string='钉钉AgentId') system_ip = fields.Char(string="系统ip端口地址") def set_values(self): super(ResConfigSettings, self).set_values() params = self.env['ir.config_parameter'].sudo() params.set_param('dingtalk_corp_id', self[0].dingtalk_corp_id) params.set_param('dingtalk_app_key', self[0].dingtalk_app_key) params.set_param('dingtalk_app_secret', self[0].dingtalk_app_secret) params.set_param('dingtalk_agent_id', self[0].dingtalk_agent_id) params.set_param('system_ip', self[0].system_ip) @api.model def get_values(self): res = super(ResConfigSettings, self).get_values() params = self.env['ir.config_parameter'].sudo() res.update( dingtalk_corp_id=params.get_param('dingtalk_corp_id'), dingtalk_app_key=params.get_param('dingtalk_app_key'), dingtalk_app_secret=params.get_param('dingtalk_app_secret'), dingtalk_agent_id=params.get_param('dingtalk_agent_id'), system_ip=params.get_param('system_ip'), ) return res def sys_group(self): self.env["inherit_group"].sys_group()