目录
1.什么是视图
2.视图的声明方式
3.tree视图
4.form视图
5.search视图
6.优先级
在Odoo中,视图(view)定义了模型记录的显示方式。 每种类型的视图代表一种可视化模式(如列表、表单、看板、日历等)。 一个模型可以定义多种类型的视图,同一类型的视图也可以定义多个,Odoo通过优先级或者指定视图ID的方式来进行选择匹配。Odoo中的视图也可以利用继承的方式来对原有的视图进行二次开发修改。
视图用来向用户展示模型中的数据,依赖于模型而存在,决定了相关页面数据的展现方式,常见的的视图包括:tree、form、search、kanban、graph等,企业版支持更多的视图形式,如:gantt、 dashboard等
Odoo中的视图定义是通过XML格式来定义,在安装模块时,这部分定义的XML会定入模型ir.ui.view中,一个视图定义是该模型的一笔数据记录,通用的格式为
和action的声明方式比较类似,固定的,使用record标签包裹起来,
视图的声明的model是ir.ui.view
这里定义的时候注意view_id不要包括符号点(.),否则Odoo会将点号前面的部分当成是模块名称
视图需要绑定模型,如上图的第二个field,绑定的模型类如:meet.meet_room
即:应用名称.模型类名称name="priority", 如果存在多个视图,可以设定优先级,看具体哪个视图起作用
name="arch", 在这里面就可以写具体的视图了,tree视图、form视图等等,所有不同视图的定义XML内容放在arch字段里面。
树视图(也称为列表视图)以表格形式显示记录。根元素是<tree>。 最简单的树形视图只列出要显示的所有字段(每个字段作为列)
- tree标签下,就可以使用模型类里面的字段了,设置几个field,应用就显示几个
- name="模型类的字段名称"
- string代表可以修改他们显示的名称,即列名,实际上是优先级高于模型类的字段名
例如,如下的tree中加入了两个模型类的字段就会显示出来
表单用于创建和编辑单个记录。根元素是<form>。 它们由高级结构元素(group、notebook)和交互元素(button、fields)组成:
- 也是在name="arch"的field的标签下,进行编写
- 是一种向下排列的样式,也就是默认数模
- group就是让字段名,也就是列名显示出来,string的用法同上
- group默认是竖着排列,如果想要横向拍了列,所以可以这样写,col="2",是两列的意思
注意是,最外层也是group,里层也是group
- 可以加 header标签,显示的内容能高点,一般写button等元素
- 里面会有header标签,里面一般是写一些button之类的元素
- form的主体部分sheet,
- group也可以自己定义string
- separator是分组的一个标题,我们可以自己定义
- notebook是标签栏,notebook里面需要定义page,一个page就是一个标签
- 比较灵活,也可以把标签放到notebook里面
- 如果不想让一个字段修改,但可以显示可以使用readonly='1'属性
搜索视图自定义与列表视图(以及其他聚合视图)关联的搜索字段。根元素是<search>,它们由定义可以搜索哪些字段的字段组成
search可以控制页面搜索框的搜索内容,当只有没有定义search时,默认搜索模型的name字段
在odoo中搜索是包含的搜索方式
对数字是比较精确的,等于的方式
如果你开发的模型没有定义搜索视图,则Odoo会自动生成仅允许在名称字段上搜索的视图。
然后看运行结果,搜索时候,就不仅仅能搜名称了 ,座位数也可以搜索了
<field name="priority" eval="10"></field>
- 属性值的值越小,优先级越高
- 如果有id为一样的视图,后面的视图会把前面的视图覆盖掉,所以有多个视图时候,要保证id的值要不同。
B站up主主页