目录
1、什么是视图
在Odoo中,视图(View)是用户界面的一部分,用于呈现和交互式地展示数据。视图定义了数据在用户界面上的外观和行为。每个视图都与一个特定的模型关联,而模型则对应数据库中的数据表。Odoo支持多种类型的视图,包括表单视图、树形视图、看板视图、图表视图、透视表视图等。
常用的视图类型
-
表单视图(Form View): 用于显示和编辑单个记录的详细信息,通常包含输入字段、按钮和其他交互元素。
-
树形视图(Tree View): 以树状结构显示多个记录,适用于显示层次结构或列表数据。
-
看板视图(Kanban View): 以卡片形式显示记录,适用于需要状态切换的情况,比如任务流程。
-
图表视图(Graph View): 以图表的形式呈现数据,通常用于展示数据的趋势和关系。
-
透视表视图(Pivot View): 以透视表的形式展示数据,提供数据的汇总和分析功能。
-
活动视图(Activity View):以活动流的方式展示数据,查看和管理与记录相关的活动。
-
calendar视图(Calendar view):以日期的形式展示数据。适用于需要按时间安排的模型,例如日历事件、任务和预约等。
下面详细的介绍每种视图的具体的用法
2、表单视图(Form)
表单视图用于显示和编辑单个记录的详细信息
<record id="view_partner_form" model="ir.ui.view">
<field name="name">partner.form</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<form>
<group>
<field name="name"/>
<field name="email"/>
<!-- 其他字段 -->
</group>
</form>
</field>
</record>
3、树形视图(Tree)
树形视图用于显示多个记录,并以树状结构呈现
<record id="view_partner_tree" model="ir.ui.view">
<field name="name">partner.tree</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="email"/>
<!-- 其他字段 -->
</tree>
</field>
</record>
4、看板视图(Kanban)
看板视图用于以卡片形式显示记录,适用于状态切换等情况
<record model="ir.ui.view" id="view_kanban_book">
<field name="name">Book kanban</field>
<field name="model">library.book</field>
<field name="arch" type="xml">
<kanban class="o_modules_kanban">
<field name='name' />
<templates>
<t t-name="kanban-box">
<!-- 在这里定义kanban box的内容 -->
<!-- 例如,显示模型中的某个字段 -->
<div class="oe_kanban_global_click">
<div class="oe_kanban_primary">
<field name="name"/>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
5、图表视图(Graph)
图表视图用于以图表形式呈现数据
<record id="view_partner_graph" model="ir.ui.view">
<field name="name">partner.graph</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<graph>
<field name="name"/>
<field name="email"/>
<!-- 其他字段 -->
</graph>
</field>
</record>
6、透视表视图(Pivot)
透视表视图用于以透视表的形式展示数据
<record id="view_partner_pivot" model="ir.ui.view">
<field name="name">partner.pivot</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<pivot>
<field name="name"/>
<field name="email"/>
<!-- 其他字段 -->
</pivot>
</field>
</record>
7、活动视图(Activity)
如待办事项、提醒和日历事件等,这些都与记录相关联
<record id="view_activity" model="ir.ui.view">
<field name="name">activity.view</field>
<field name="model">crm.lead</field>
<field name="arch" type="xml">
<activity string="Contacts">
<field name="name" />
<templates>
<div t-name="activity-box">
<img t-att-src="activity_image('res.partner', 'avatar_128', record.id.raw_value)" role="img" t-att-title="record.id.value" t-att-alt="record.id.value"/>
<div>
<field name="name" />
</div>
</div>
</templates>
</activity>
</field>
</record>
8、calendar视图
用于展示日期、事件和任务的视图类型
<record id="view_calendar" model="ir.ui.view">
<field name="name">calendar.view</field>
<field name="model">crm.lead</field>
<field name="arch" type="xml">
<calendar date_start = 'date_start'>
<!-- Calendar View Definition Goes Here -->
<field name="name"/>
<field name="date_deadline"/>
<field name="user_id"/>
</calendar>
</field>
</record>
在后面内容中,我会将每种视图的详细用法,涉及到的所有参数都写来出