3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)
目录
1.什么是视图
2.视图的声明方式
3.tree视图
4.form视图
5.search视图
6.优先级
1.什么是视图
在Odoo中,视图(view)定义了模型记录的显示方式。 每种类型的视图代表一种可视化模式(如列表、表单、看板、日历等)。 一个模型可以定义多种类型的视图,同一类型的视图也可以定义多个,Odoo通过优先级或者指定视图ID的方式来进行选择匹配。Odoo中的视图也可以利用继承的方式来对原有的视图进行二次开发修改。
视图用来向用户展示模型中的数据,依赖于模型而存在,决定了相关页面数据的展现方式,常见的的视图包括:tree、form、search、kanban、graph等,企业版支持更多的视图形式,如:gantt、 dashboard等
2.视图的声明方式
Odoo中的视图定义是通过XML格式来定义,在安装模块时,这部分定义的XML会定入模型ir.ui.view中,一个视图定义是该模型的一笔数据记录,通用的格式为
<odoo><record model="ir.ui.view" id="view_id"><field name="name">视图名称</field><field name="model">视图绑定的模型</field><!-- eval代表模型的优先级,如果有相同类型的视图,会使用优先级高的 --><field name="priority" eval="16"></field><!-- arch 的类型必须指定为xml,内部嵌套具体的视图 --><field name="arch" type="xml"><!-- view content: <form>, <tree>, <graph>, ... --></field></record> </odoo> # ir.ui.view 代表数据库中表对应的视图的模型
和action的声明方式比较类似,固定的,使用record标签包裹起来,
视图的声明的model是ir.ui.view
这里定义的时候注意view_id不要包括符号点(.),否则Odoo会将点号前面的部分当成是模块名称
视图需要绑定模型,如上图的第二个field,绑定的模型类如:meet.meet_room
即:应用名称.模型类名称name="priority", 如果存在多个视图,可以设定优先级,看具体哪个视图起作用
name="arch", 在这里面就可以写具体的视图了,tree视图、form视图等等,所有不同视图的定义XML内容放在arch字段里面。
3.tree视图
树视图(也称为列表视图)以表格形式显示记录。根元素是<tree>。 最简单的树形视图只列出要显示的所有字段(每个字段作为列)
<record model="ir.ui.view" id="testroom_list_view"><field name="name">TestRoomList</field><field name="model">test.test_room</field><field name="arch" type="xml"><tree><field name="name" string="科目名称"/><field name="seat_num"/></tree></field> </record>
- tree标签下,就可以使用模型类里面的字段了,设置几个field,应用就显示几个
- name="模型类的字段名称"
- string代表可以修改他们显示的名称,即列名,实际上是优先级高于模型类的字段名
例如,如下的tree中加入了两个模型类的字段就会显示出来
4.form视图
表单用于创建和编辑单个记录。根元素是<form>。 它们由高级结构元素(group、notebook)和交互元素(button、fields)组成:
<record model="ir.ui.view" id="testroom_form_view"><field name="name">testroom.form</field><field name="model">test.test_room</field><field name="priority" eval="10"></field><field name="arch" type="xml"><form string="TestRoom Form"><group><field name="name" string="名称"/><field name="seat_num"/></group></form></field> </record>
- 也是在name="arch"的field的标签下,进行编写
- 是一种向下排列的样式,也就是默认数模
- group就是让字段名,也就是列名显示出来,string的用法同上
- group默认是竖着排列,如果想要横向拍了列,所以可以这样写,col="2",是两列的意思
<record model="ir.ui.view" id="testroom_form_view"><field name="name">testroom.form</field><field name="model">test.test_room</field><field name="priority" eval="10"></field><field name="arch" type="xml"><form string="TestRoom Form"><group col="2"><group><field name="name" string="名称"/></group><group><field name="seat_num"/></group></group></form></field> </record>
注意是,最外层也是group,里层也是group
- 可以加 header标签,显示的内容能高点,一般写button等元素
<record model="ir.ui.view" id="testroom_form_view"><field name="name">testroom.form</field><field name="model">test.test_room</field><field name="arch" type="xml"><form string="TestRoom Form"><header><!-- 此处可以放一些自定义的button元素 --><button string="按钮">按钮</button></header><sheet><!-- 对内容进行分组,可以在string中写分组名称,也可以写在其内的separator标签中 --><group string=""><separator string="考场管理"/><field name="name" string="科目"/><field name="seat_num"/></group><!-- 使用noteboook标签定义标签区域 --><notebook><!-- 使用page定义不同的标签页,string为标签的名称 --><page string="科目">这里是科目的描述,里面可以加其他的标签<group><field name="name" string="科目"/></group></page><page string="座位数量">这里是座位数量的描述,里面可以加其他的标签<group><field name="seat_num"/></group></page></notebook></sheet></form></field> </record>
- 里面会有header标签,里面一般是写一些button之类的元素
- form的主体部分sheet,
- group也可以自己定义string
- separator是分组的一个标题,我们可以自己定义
- notebook是标签栏,notebook里面需要定义page,一个page就是一个标签
- 比较灵活,也可以把标签放到notebook里面
- 如果不想让一个字段修改,但可以显示可以使用readonly='1'属性
5.search视图
搜索视图自定义与列表视图(以及其他聚合视图)关联的搜索字段。根元素是<search>,它们由定义可以搜索哪些字段的字段组成
search可以控制页面搜索框的搜索内容,当只有没有定义search时,默认搜索模型的name字段
<record model="ir.ui.view" id="testroom_search_view"><field name="name">testroom.search</field><field name="model">test.test_room</field><field name="arch" type="xml"><search><field name="name"/><field name="seat_num"/></search></field> </record>
在odoo中搜索是包含的搜索方式
对数字是比较精确的,等于的方式
如果你开发的模型没有定义搜索视图,则Odoo会自动生成仅允许在名称字段上搜索的视图。
然后看运行结果,搜索时候,就不仅仅能搜名称了 ,座位数也可以搜索了
6.优先级
<field name="priority" eval="10"></field>
- 属性值的值越小,优先级越高
- 如果有id为一样的视图,后面的视图会把前面的视图覆盖掉,所以有多个视图时候,要保证id的值要不同。
B站up主主页
单三er的个人空间_哔哩哔哩_Bilibili单三er,野生odoo爱好者;单三er的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/419877109
3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)相关推荐
- odoo13学习 odoo的视图
1. odoo的基本视图结构 基本视图通常共享下面定义的公共结构.占位符用全大写表示. <record id="MODEL_view_TYPE" model="ir ...
- 基于物化视图优化_CVPR2017|基于构造多视图子空间中的潜在表示解决聚类问题
作者 | 张泽宇 编辑 | 臧晨宇 校对 | 李仲深 今天给大家介绍天津大学张长青老师等人在CVPR2017上发表的文章"Latent Multi-view Subspace Cluster ...
- mysql在视图中增加新数据_怎么向Mysql视图中增加新数据
本篇文章主要给大家介绍mysql数据表中视图是怎么新增数据的. mysql视图的相关知识在我们之前的文章中,都已经给大家详细介绍过了,相信大家对视图肯定有了更深一步的了解. 从前面文章的介绍中,大家应 ...
- 认真学习MySQL中的MVCC机制
什么是MVCC?MVCC(Multiversion Concurrency Control),多版本并发控制.顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制.这项技术使得在Inno ...
- 学习VC中所得的点点心
我学习VC中所得的点点心得,有新的内容我会慢慢补上的 1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_EN ...
- swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...
swift视图容器 by Lee Dowthwaite 通过李道思韦特 如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图 (How to create a beautif ...
- 学习Spring中遇到关于BeanFactory及测试类的问题
最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource = new ClassPathResou ...
- 【组队学习】【24期】集成学习(中)
集成学习(中) 开源内容: https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearni ...
- 特征重要性、特征集成+FeatureUnion、特征选择变换器+ColumnTransformer、标签特征变换+TransformedTargetRegressor、特征质量、自动学习数据中的特征
特征重要性.特征集成+FeatureUnion.特征选择变换器+ColumnTransformer.标签特征变换+TransformedTargetRegressor.特征质量.自动学习数据中的特征 ...
最新文章
- 那些20岁不信,30岁却深信不疑的道理!
- 基于Kotlin实现的GankIo客户端
- IC设计通过system c 建模和 rtl级的有什么区别
- nagios出现乱码
- Spring Boot与Web开发简介||SpringBoot对静态资源的映射规则
- 【Paper】2019_Consensus Control of Multiple AUVs Recovery System Under Switching Topologies and Time D
- 一个有趣的观察:关于内向和外向
- mysql 介绍 知乎_SQL介绍——Mysql
- 金山云html文件,金山云安全开放平台
- [转载] 使用Python在ArcGIS中编程杂谈
- Android ViewGroup
- GNS3+GNS3 VM
- 苹果6s强制删除id锁_苹果ID锁安全神话破灭!2分钟就能解锁
- 密码学系列之二:密码学基本概念
- 操作系统_第三章_处理器管理_多道程序设计
- 项目创新特色概述及主要内容
- android kitkat(4.4以上)各个版本的特性解析
- MATLAB坐标轴位置调整
- Java VisualVM使用
- STM32 HAL库之看门狗
热门文章
- wps电脑版_使用好这几个功能,让你手机里的wps变身神器。
- ceph-deploy mod add_GTA5 1.50NPC自杀 MOD [支持1.411.50版本] 覆盖版【5.19MB】
- Ⅱ:zookeeper的相关shell命令
- PaddleOCR——CUDA9.0环境中训练运行错误【Cudnn error, CUDNN_STATUS_BAD_PARAM】解决方案
- 汇编语言——正数数组P和负数数组N
- java的格式化时间工具类
- 多硬盘的引导文件boot.ini
- Vue.js-Day02-AM【Vue表单、核心指令(单选框、密码框、多行文本框、单选、多选、勾选、下拉列表)、组件汇总案例、ToDoList案例、计算属性(computed)、watch监听】
- Tp3.2在nginx下隐藏index.php文件
- 基于face++的人脸识别(上)