Odoo能够为给定的模型生成默认视图。在实践中,默认视图对于业务应用程序来说是绝对不可接受的。相反,我们至少应该以合乎逻辑的方式组织各个字段。
视图在带有Actions操作和Menus菜单的 XML 文件中定义。它们是模型的 ir.ui.view
实例。
列表视图
列表视图(也称为树视图)以表格形式显示记录。
Their root element is <tree>
. The most basic version of this view simply lists all the fields to display in the table (where each field is a column):
它们的根元素是 <tree>
。此视图的最基本版本只是列出要在表中显示的所有字段(其中每个字段都是一列):
<tree string="Tests">
<field name="name"/>
<field name="last_seen"/>
</tree>
表单视图
表单用于创建和编辑单个记录。
它们的根元素是 <form>
。它们由高级结构元素(组和笔记本)和交互元素(按钮和字段)组成:
<form string="Test">
<sheet>
<group>
<group>
<field name="name"/>
</group>
<group>
<field name="last_seen"/>
</group>
</group>
<notebook>
<page string="Description">
<field name="description"/>
</page>
</notebook>
</sheet>
</form>
可以使用常规的HTML标签,如 div
和 h1
以及属性 class
(Odoo提供了一些内置类)来微调外观。
搜索视图
搜索视图与列表视图和表单视图略有不同,因为它们不显示内容。尽管它们适用于特定模型,但它们用于筛选其他视图的内容(通常是聚合视图,如列表)。除了用例的差异之外,它们的定义方式相同。
它们的根元素是 <search>
。此视图的最基本版本仅列出需要快捷方式的所有字段:
<search string="Tests">
<field name="name"/>
<field name="last_seen"/>
</search>
Odoo生成的默认搜索视图提供了一个快捷方式,可以按 name
进行筛选。在自定义搜索视图中添加用户可能筛选的字段是很常见的。
搜索视图还可以包含 <filter>
元素,这些元素充当预定义搜索的切换开关。筛选器必须具有以下属性之一:
-
domain
: adds the given domain to the current searchdomain
:将给定域添加到当前搜索中 -
context
: adds some context to the current search; uses the keygroup_by
to group results on the given field namecontext
:为当前搜索添加一些上下文;使用键group_by
对给定字段名称的结果进行分组
Domains 域
在Odoo中,域对记录的条件进行编码:域是用于选择模型记录子集的条件列表。每个条件都是一个三元组,其中包含字段名称、运算符和值。如果指定的字段满足应用于该值的运算符的条件,则记录满足条件。