搜索视图
可用的搜索选项是通过<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)有效。
上一节:列表视图 下一节:日历视图