表单视图用于从单个记录中显示数据。它们的根元素是。它们由常规HTML组成,具有额外的结构和语义组件。
结构组件结构组件提供了结构化的或很小逻辑的“视觉”特征的组件。它们用作表单视图中的元素或元素集。
notebook
定义选项卡部分。每个选项卡都是通过page子元素定义的。page子元素可以具有以下属性:
string
(必须的)
选项卡标题
accesskey
一个HTML 快捷键
attrs
基于记录值的标准动态属性
group
用于在表单中定义列布局。默认情况下,组定义2列,组中最直接的子组使用单个列。 field
直接子组默认显示一个标签,并且这个标签和字段本身合用一个单元格。
在一个group
中列的个数可以使用col
属性自定义,一个元素的列数可使用colspan属性自定义。
子元素水平放置(试图在改变行之前填充下一列)。
组可以有一个string
属性,它显示为组的标题
newline
仅在group
元素中有用,提前结束当前行,然后立即切换到新行(未预先填充任何剩余列)。
separator
小的水平间距,随一个string
属性作为一个部件的标题
sheet
可用作form
元素的直接子元素来形成一个更有限的和更加响应式的表单布局
header
和sheet元素组合使用,在sheet元素之上提供一个完整宽度的场景,通常用于展示工作流和状态小部件
语义组件语义组件和Odoo系统相联系并与允许和Odoo系统互动。 可用的语义组件如下:
button
访问Odoo系统,和列表式视图的按钮使用类似
field
呈现(并允许可能的版本)当前记录的单个字段。可能的属性是:
name
(强制性的)
要呈现的字段的名称
widget
字段有一个基于其类型的默认渲染方式 (例如 Char
, Many2one
), 而 widget
属性允许使用不同的渲染方法和上下文
options
JSON对象指定字段小部件的配置选项(包括默认小部件)
class
在生成的元素上设置HTML样式类,通用的字段样式类有:
oe_inline
防止在字段后出现换行
oe_left
, oe_right
将字段浮动到相应的方向
oe_read_only
, oe_edit_only
仅以相应的表单模式显示字段
oe_no_button
在使用Many2one
时禁止展示导航按钮
oe_avatar
对于图片字段,展示图片作为其“化身”(正方形,最大90x90,对于某些图片装饰)
groups
只显示特定用户的字段
on_change
在编辑该字段的值时调用指定的方法,可以生成更新其他字段或为用户显示警告
子8.0版本后过时:在模版(model)上使用 odoo.api.onchange()
attrs
基于记录值的动态元参数
domain
对于关系字段,只有在显示现有记录以进行选择时才能应用筛选器
context
对于关系字段,只有在获取可能值时传递上下文
readonly
在只读模式和编辑模式显示字段,但总是不可编辑
required
当字段没有值是生成一个错误提示并阻止记录保存
nolabel
不自动显示字段的标签,只有在字段是group
元素的直接子元素时才有意义
placeholder
在字段为空时展示的帮助消息。可以在复杂的表单中代替字段标签。不应该是数据的一个例子,因为用户很容易混淆占位符文本和填充字段
mode
对于One2many
, 展示模型(视图类型)使用字段的关联记录。 tree
, form
, kanban
或graph
视图中的一个。默认是 tree
视图(列表视图)
help
在字段或标签上悬停时为用户显示提示信息
filename
对于二进制字段,相关字段名称提供了文件的名称
password
指示一个Char
字段存储密码并不展示数据
业务视图针对的是普通用户,而不是高级用户。列子有: Opportunities, Products, Partners, Tasks, Projects等项目。
一般来说,一个业务视图由以下三点组成:
- 顶部的状态栏(带有技术或业务流程),
- 中间的一表单(表单本身),
- 有历史内容和评论内容的底层。
从技术上讲,新表单视图的结构如下(xml格式):
... content of the status bar ...
... content of the sheet ...
... content of the bottom part ...
状态栏
状态栏的目的是显示当前记录的状态和动作按钮。
按钮
按钮的顺序遵循业务流程。例如,在销售订单中,逻辑步骤是:
- 发送报价
- 确认报价
- 创建最终发票
- 发送货物
突出显示的按钮(默认为红色)以帮助用户强调逻辑的下一步。它通常是第一个活动按钮。另一方面,取消按钮必须保持灰色(通常情况下)。例如,在发票中,退款按钮绝不是红色的。
从技术上将,按钮的突出显示可以通过添加样式类"oe_highlight"实现:
状态
使用statusbar
小部件,并用红色显示当前状态。 所有流中常见的状态 (例如,一个销售订单开始是报价,然后我们发送它,然后它成为一个完整的销售订单并且最后被完成) 应该在任何时候都可见,但取决于特定子流的异常或状态仅在当前时可见。
状态随着在字段中的使用顺序的变化而改变 (选择字段中的列表等)。总是显示的状态指定使用属性 statusbar_visible
Sheet表单
所有业务视图都应该像一张打印的表:
- 在 和 元素内部的元素不定义组,它们内部的元素是安装普通HTML规则来布局的。它们的内容可以用 元素或者规整的 元素显示的进行分组。
- 默认情况下,元素内部定义了两列,除非使用了属性col="n"。每列都有相同的宽度 (组宽度的1/n)。 使用
元素生成字段栏。
要给一个段赋予一个标题,可以将一个string属性添加到元素:
这取代了以前的使用的
。
元素不产生一个标签,除非作为一个元素的直接子元素。使用
关注打赏 - 默认情况下,元素内部定义了两列,除非使用了属性col="n"。每列都有相同的宽度 (组宽度的1/n)。 使用
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录