#odoo17开发初学者 收集通义灵码的结果整理#
在Odoo的XML视图文件中, 标签用于组织和布局表单或列表视图中的字段。它的主要作用是:
分组和布局:
可以将相关的字段组织在一起,形成逻辑上的区块或行,方便管理和显示。例如,您可以将所有与地址信息相关的字段放在一个 内。
样式控制:
元素可以有自己的CSS类,通过 class 属性来定义,这有助于自定义不同分组的样式,如内边距、背景颜色等。
折叠/展开功能:
在某些情况下(比如表格视图或折叠式表单视图), 可能具有折叠功能,用户可以根据需要选择是否展示该组内的详细内容。
上下文和条件渲染:
中的字段也可以根据上下文变量或记录状态进行条件性地显示或隐藏,通过使用 attrs 属性配合表达式来实现。
水平布局:
通过设置 colspan 和 newline 等属性, 可以帮助您控制字段的横向排列布局。
请注意,不是所有属性都会同时出现在所有版本的Odoo中,具体的可用属性可能会根据Odoo版本有所不同。此外,开发者还可以通过自定义渲染器等方式扩展 元素的功能。
在Odoo的XML视图中, 标签用于组织和布局字段,并可能包含以下属性:
string:
描述性文本,通常作为组标题显示。
colspan:
控制该组占据的列数(仅在表格视图或类似情况下有用)。
groups:
逗号分隔的用户组ID列表,只有属于这些组的用户才能看到这个组。
invisible:
布尔值或布尔表达式,决定该组是否可见。例如 invisible="1" 或者 `attrs="{'invisible': [('condition_field', '=', 'value')]}"
readonly:
可以设置为布尔值或表达式,决定该组内的所有字段是否默认为只读状态。
attrs<odoo17弃用>:
包含其他动态属性的字典,如 {'readonly': ..., 'required': ..., 'invisible': ...} 等。
states:
字符串列表,表示当前记录处于这些状态之一时,该组才可见。
class:
CSS类名,用于添加样式。
name:
组的唯一标识符,在某些场景下可能会用到,但不常用。
id:
为 分配一个唯一的ID,通常由系统自动生成,但在需要引用该组时可以手动设置。
newline:
在表单视图中控制是否开始新的一行。
expand:
指定该组是否默认展开(仅在折叠式表单视图中有效)。
mode:
在某些特定视图类型中,例如表单视图,指定布局模式,如 "tree", "kanban", "form" 等,但在 中并不常用。
**position="attributes"`:
在一些情况下,用于将一组字段作为属性(而不是子元素)添加到父级元素上,这种用法相对少见。
style 或者样式相关的属性:
直接在XML标签内定义CSS样式,但这不是Odoo推荐的做法,通常通过 class 属性结合自定义CSS来实现样式。
separator:
在列表视图中控制是否显示分隔线。
示例代码:
<record id="view_id" model="ir.ui.view">
<field name="name">your.model.form</field>
<field name="model">your.model</field>
<field name="arch" type="xml">
<form>
<!-- 地址信息组 -->
<group string="地址信息">
<field name="street"/>
<field name="city"/>
<field name="zip_code"/>
<field name="country_id"/>
</group>
<!-- 其他组或字段... -->
</form>
</field>
</record>
默认情况,Odoo的form主视图 要显示两列只能用group嵌套两个group实现,只能两列,再多没有作用
<group string="我的一段信息">
<group string="左边列">
<field name="左1行"/>
<field name="左2行"/>
</group>
<group string="右边列">
<field name="右1行"/>
<field name="右2行"/>
</group>
</group>