res_config_settings_views.xml 文件位于Views文件夹下。
这个文件主要用于定义我们前面自定义的配置项在ODOO 设置中的显示方式。
要使这个文件起作用还需要在__manifest__.py文件中,进行引用。
接下来我们看一下主要的代码:
<record id="res_config_settings_view_form" model="ir.ui.view">
一个view记录是一个ir.ui.view模型的一条数据记录,用户界面的每个组件都以记录的形式存储在数据库中,模块从XML文件加载相应的数据时会向数据库添加UI元素,然后odoo从数据库读取UI元素进行显示。
定义出的视图作用是将模型中的记录数据展示出来。每一种视图类型代表一个可视化模式。可以通过视图类别显示出通用的视图界面,也可以指定对应的记录id访问特定的记录。对于一般的请求,将使用正确且最低优先级的视图,每种类型最低优先级的视图是该类型的默认视图。视图类型隐藏在arch的field标签属性中。 view视图定义在XML文件中,在arch字段中必须定义 type="xml"属性。
<field name="name">res.config.settings.view.form.inherit.aliyundrive</field>
field name属性值为name表示页面的名称
<field name="model">res.config.settings</field>
field name属性值为model表示页面的名称,表示该视图关联的模型,对应到数据库就是数据库中的某张表,模型中放的字段就是对应到数据库表中的字段。
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
field name属性值为inherit_id表示通过继承的方式来改写已经存在的view,ref指向要改写的view。
<field name="arch" type="xml">
field name属性值为arch表示视图布局的描述,采用的是xml来展现视图
该字段中的属性值关联的是模型中的字段,体现在页面中就是需要填写的表单内容。
<xpath expr="//div[@name='integration']" position="inside">
在arch里用xpath定位改写的元素,找到名为integration的div,在内部结尾插入代码。
- 注意找到的元素必须是一个,如果定位出多个元素或者是空,都会报错。
- expr Xpath表达式用来选择父视图中的某个元素,如果没找到或找到多个元素会抛出一个异常
position定位有如下选择
- inside 在内部结尾插入元素
- replace 替换元素
- before 在之前插入元素
- after 在其后插入元素
- attributes 修改xml的属性
接下来就是一些CSS代码,这里不再赘述。
演示:
用户名:admin
密码:admin