搜索视图

来自Odoo大V社-odoo中文开发手册
跳转至: 导航搜索

可用的搜索选项是通过<search>视图类型定义的。我们可以选择在搜索框中输入字段时自动搜索。我们还可以提供预定义的过滤器,用单击激活,并在列表视图中使用预定义的分组选项。

以下是对to_do任务的一个搜索视图:

<record id="todo_app.view_filter_todo_task"

model="ir.ui.view">

<field name="model">todo.task</field>

<field name="arch" type="xml">

<search>

<field name="name"/>

<field name="user_id"/>

<filter name="filter_not_done" string="Not Done"

domain="[('is_done','=',False)]"/>

<filter name="filter_done" string="Done"

domain="[('is_done','!=',False)]"/>

<separator/>

<filter name="group_user" string="By User"

context="{'group_by': 'user_id'}"/>

</search>

</field>

</record>

我们可以看到两个搜索字段—name和user_id.当用户开始在搜索框上键入时,下拉框将建议搜索这些字段中的任何一个。如果用户键入“ENTER”,搜索将在第一个过滤器字段中执行。

然后我们有两个预定义的过滤器,过滤未完成和完成的任务。可以独立激活这些过滤器,并与一个or操作符连接. <separator/> 分离的块过滤器,将与“and”运算符连接起来。

第三个过滤器只根据上下文设置一个组。在这种情况下user_id 告诉视图对纪录以此字段分组。

字段元素可以使用如下属性:

name 标识要使用的字段

string 是一个标签文本,而不是默认值。

operator 用于更改默认操作符(= 对应数字类型字段 ,ilike 用于其他类型字段)

filter_domain设置一个特定的域表达式用于搜索,提供一个灵活的操作符属性。搜索的文本字符串在表达式中用self引用,一个简单的例子是:

filter_domain="[('name', 'ilike', self)]".

group 只对属于某些安全组的用户进行搜索。这里需要一个逗号分隔的XML id列表。

对于过滤器元素,可用的属性:

name 是继承使用的标识符或通过窗口操作启用它。虽然不是强制性的,但始终提供它是一个很好的做法。

string 为筛选器显示的标签文本。必选项

domain 是要添加到当前域的域表达式。

contex是添加到当前上下文的上下文字典。通常为字段名称设置一个group_id键,以对记录进行分组。

groups 使字段搜索仅对安全组列表(XML IDs)有效。

上一节:列表视图 下一节:日历视图