Toggle navigation

视图

共同结构

视图类型有多个字段,除非另有说明,否则它们都是选填的

name (必填)
只是用来在列表视图里面作为描述显示或者排序
model
模型链接到视图(它不适用于QWeb视图)
priority

客户端可以通过 id , 或者 (model, type) 请求视图。 对于后者, 将会搜索出所有正确类型和模型的视图,并且将返回最小 priority 编号的视图 (它是“默认视图”)。

priority 也定义了视图继承期间的应用顺序 视图继承

arch
视图布局的描述
groups_id
Many2many 字段允许查看/使用当前视图的分组
inherit_id
当前视图的父视图,详情可查阅 继承 ,默认情况下没有设置
mode
继承模型, 详情可查阅 继承。如果 inherit_id 未设置,则 mode 只能为 primary。 如果设置了 inherit_id , 默认情况下为 extension ,但可以设置为 primary
application
网站功能定义可切换的视图。默认情况下,始终应用该视图

继承

视图匹配

  • 如果一个视图被 (model, type) 请求, 则视图会有正确的模型和类型,并且 mode=primary 的最低优先级是匹配的
  • 当一个视图被 id 请求时, 如果它的模型不是 primary ,则其最相近的父视图 primary 是匹配的

视图分解

分解为匹配的 primary 生成最终的 arch 视图:

  1. 如果视图具有父视图,则父级完全解析,然后应用当前视图的继承说明
  2. 如果视图没有父视图,则其 arch 按原样使用
  3. 将查找当前视图具有模型 extension 扩展的子项,并且深度优先应用它们的继承说明(应用子视图,应用其子代,应用其兄弟)

应用子视图的结果是产生最终的 arch

继承说明

继承由元素定位器组成,以匹配父视图中的继承元素,以及用于修改所继承元素的子元素

有三种类型的元素定位符用于匹配目标元素:

  • 具有 expr 属性的 xpath 元素。 expr 是一个应用于当前 archXPath 表达式2 ,第一个节点是匹配的
  • 具有 name 属性的 field 元素, 匹配具有相同 name 的第一个 field 。在匹配期间将忽略其它所有的属性
  • 任何其它元素:具有相同名称和第一个元素相同的属性(忽略 positionversion 属性)是匹配的,继承可以有可选的 position 属性,指定如何更改匹配的节点:
inside (默认)
继承的内容将添加到所匹配的节点
replace
继承的内容将替换所匹配的节点。在规范的内容中包含 [UNKNOWN NODE title_reference] 的任何文本节点将被所匹配节点的副本替换, 从而有效地包装匹配的节点
after
继承的内容将添加到所匹配节点的父节点之后
before
继承的内容将添加到匹配节点的父节点之前
attributes

继承的内容应该具有 name 属性和选填的 attribute 元素:

  • 如果 attribute 元素是主要的, 则在所匹配的节点上创建以其 name 命名的新属性,将 attribute 元素的文本作为值
  • 如果 attribute 元素不是主要的, 则需从所匹配的节点中删除以其 name 命名的属性。如果不存在这样的属性将产生错误

视图的说明是按顺序应用的。

列表

列表视图的根元素是 <tree>3 。列表视图的根元素可以有以下属性

editable

默认情况下, 选择列表视图的行打开对应的 form vieweditable 属性可以让列表视图在原文进行编辑。

验证值是 topbottom ,使创建的新纪录分别出现在列表的顶部或底部.

内联 form view 的体系结构派生自列表视图。在 form view 的字段和按钮上大多数有效的属性因此被列表视图所接受,如果列表视图是不可编辑的,它们可能没有任何意义

default_order

覆盖视图的顺序,替换模型的默认顺序。该值是以逗号最为分割,列表后缀以 desc 反向排序

<tree default_order="sequence,name desc">
colors

Deprecated since version 9.0被: decoration-{$name} 替换

fonts

Deprecated since version 9.0被: decoration-{$name} 替换

decoration-{$name}

允许基于记录的属性更改行文本的样式

其值是Python的表达式。对于每个记录,计算表达式将所记录的属性作为上下文值,如果为 true, 相应的样式将应用于该行。其他上下文值为 uid (当前用户的id) 和 current_date (当前日期为 yyyy-MM-dd 形式的字符串)。

{$name} 可以是 bf (font-weight: bold), it (font-style: italic), 或任何 引导上下文颜色 (danger, info, muted, primary, successwarning)。

create, edit, delete
通过将相应的属性设置为 false禁用 视图中的相应操作
on_write

只有在 editable 列表中才有意义。列表模型上方法的名称。在创建或编辑该记录(在数据库中)后,将使用记录的 id 来调用该方法。

该方法应返回其他记录的id列表以方便加载或更新

string

视图的替代可翻译标签

Deprecated since version 8.0: 不再显示

列表视图的可能子元素是:

button

在列表单元格中显示按钮

icon
图标,用于显示按钮
string
  • 如果没有 icon , 那么就是按钮的文本
  • 如果有 icon ,则为 alt 的替代文本
type

按钮的类型,提示如何点击它影响Odoo:

workflow (默认)
向工作流发送信号。按钮的 name 是工作流信号,行的记录作为参数传递给信号
object
调用列表模型上的方法。按钮的 name 是方法,它使用当前记录的id以及在当前上下文中调用。
action
加载执行一个 ir.actions ,按钮的 name 动作的数据库id。上下文中使用的列表模型(作为 active_model)扩展,当前行的记录(active_id)和列表中当前加载的所有记录 (active_ids,可能只是一个子集数据库记录匹配当前的搜索)
name
详情请查阅 type
args
详情请查阅 type
attrs

基于记录值的动态属性

属性到域, 域的映射在当前记录的上下文中说明,如果为 True ,则在单元上设置相应的属性

可能的属性是 invisible (隐藏按钮)和 readonly (禁用按钮,但扔显示)

states

invisible attrs 的简写: 状态列表,逗号分隔,要求模型具有 state 字段,并且它在视图中

如果记录 不是 在所列出的状态当中,使按钮 invisible

context
在执行按钮的Odoo调用时合并到视图的上下文中
confirm
确认消息以在执行按钮的Odoo调用之前显示 (并且供用户接受)
field

定义一个列,其中应为每个记录显示相应的字段。可以使用以下属性:

name
要在当前模型中显示的字段名称。给定的名称对每个视图只能使用一次
string
字段列的标题 (默认情况下, 使用模型字段的 string)
invisible
提取和存储字段,但不显示列中。对于不应该显示但是需使用的字段是非常有必要的。例如 @colors
groups
列出应该能够看到字段的分组
widget

字段显示的表示,可能的列表视图值包括:

progressbar
float 字段显示为进度条。
many2onebutton
如果字段是填充的,则通过复选标记替换m2o字段的值
handle
对于 sequence 字段,而不是所显示字段的值只显示一个dra&drop图标
sum, avg
在列的底部显示相应的总数。总数仅在 当前显示的 记录上计算。总数操作必须与相应字段 的 group_operator 匹配
attrs
基于记录集的动态属性。只影响当前字段,invisible 将会隐藏字段,但使其他记录的相同字段可见,它不会隐藏列本身

表单

表单视图用于显示单条记录的数据。根元素是 <form>,由 HTML 及其它结构和语义组成

结构组件

结构组件提供少逻辑的结构或"视觉"特征。它们用作窗体视图中的元素或元素集。

notebook

定义标题部分。每个选项卡通过一个 page 子元素定义。页面可以具有以下属性:

string (必填)
标签的标题
accesskey
HTML accesskey
attrs
基于记录值的标准动态属性
group

用在表单中定义列。默认情况下,组定义两列并且组的最直接子项采用单列。 field 组的直接子元素默认显示一个标题,标题和字段本身的列为1。

group 中的列数可以用 col 属性来计算,元素所用的列数可以用 colspan 属性来计算。

子元素的横向布局(试着在改变行之前填充下一列)

分组可以有一个 string 属性,它显示为分组的标题

newline
只用于 group 元素,提前结束当前行并立即切换到新行 (没有提前填充任何剩下的列)
separator
小的横向间距,带有 string 属性的为一个节标题
sheet
可以作为一个直接的子 form,显示为一个美观的表单形式
header
sheet 结合,在工作表上方预留着宽的位置,通常用于显示工作流的按钮和状态的小部件

语义组件

语义组件涉及并允许与Odoo系统的交互。可用的语义组件有:

button
调用进去Odoo系统,类似于 list view buttons
field

渲染 (并允许编辑)当前记录的单个字段。可能的属性包括

name (必填)
要呈现的字段的名称
widget
字段具有基于其类型的默认呈现( 例如 CharMany2one)。 widget 属性允许使用不同的渲染方法和上下文
options
JSON 对象指定字段窗口小部件的配置(包括默认的窗口小部件)
class

HTML类在生成的元素上设置,公共字段有:

oe_inline
避免换行符后面的字段
oe_left, oe_right
floats 字段到相应的地方
oe_read_only, oe_edit_only
只显示相应表单模式中的字段
oe_no_button
避免显示导航按钮在 Many2one
oe_avatar
对于图像字段,将图像显示为"头像" (正方形,最大尺寸为90x90,某些图像装饰)
groups
仅显示特定用户的字段
on_change

在编辑此字段的值时调用指定的方法,可以为用户生成更新的其他字段或显示警告

Deprecated since version 8.0: 在模型上使用 odoo.api.onchange()

attrs
基于记录值的动态元参数
domain
仅用于关系字段;显示现有记录以供选择应用的过滤器
context
仅用于关系字段,上下文在获取可能的值时传递
readonly
在只读和编辑模式下显示字段,但永远不可编辑
required
如果字段没有值,则会生成错误并阻止保存记录
nolabel
不自动显示字段的标签,只有当字段是 group 元素的直接子元素时才有意义
placeholder
帮助消息显示在 字段中。可以替换复杂表单中的的字段标签。不应该 是数据,因为用户可能会将占 位符文本与填充字段混淆
mode
One2many,显示模式(视图类型)用于字段的链接记录。 一个 treeformkanbangraph 。默认是 tree (一个列表显示)
help
悬停在字段或标签时为用户显示说明提示
filename
对于二进制字段,提供文件相关字段的名称
password
表示 Char 字段存储密码,并且不应显示其数据

业务视图指南

业务视图针对的是普通用户,而不是高级用户。例如包括:机会,产品,合作伙伴,任务,项目等等

一般来说,业务视图由以下几点组成

  1. 顶部的状态栏(具有技术或业务流程)
  2. 在中间的纸(形式本身),
  3. 底部有历史和注释。

从技术上讲,新的表单视图在XML中的结构如下:

<form>
    <header> ... content of the status bar  ... </header>
    <sheet>  ... content of the sheet       ... </sheet>
    <div class="oe_chatter"> ... content of the bottom part ... </div>
</form>

状态栏

状态栏的目的是显示当前记录和动作按钮的状态。

按钮

按钮的顺序遵循业务流程。例如,在销售订单中,逻辑步骤是:

  1. 发送报价单
  2. 确认报价
  3. 创建最终发票
  4. 发送货物

突出显示的按钮(默认为红色)强调逻辑下一步,以帮助用户。它通常是第一个活动按钮。另一方面,cancel 按钮 必须是 保持灰色 (正常)。例如,在发票中,按钮 Refund 绝不能是红色的。

技术上,按钮通过添加类 "oe_highlight" 突出显示:

<button class="oe_highlight" name="..." type="..." states="..."/>
状态

使用 statusbar 窗口小部件,并且以红色显示当前状态。所有流程共有的国家(例如,销售订单以报价开头,然后我们发送,然后成为完整的销售订单,最后完成)应该始终可见,但是根据特定子流程的异常或状态应该仅在当前可见。

状态按照字段中使用的顺序显示 (选择字段中的列表等)。始终可见的状态使用属性 statusbar_visible 指定。

<field name="state" widget="statusbar"
    statusbar_visible="draft,sent,progress,invoiced,done" />

工作表

所有业务视图应类似于打印纸纸张的大小:

  1. <form><page> 中的元素不定义组,元素在其内部按照正常的HTML规则布局。它们的内容可以 使用 <group> 或者 <div> 元素显示分组。.
  2. 默认情况下,元素 <group> 在里面定义两列,除非属性 col="n" 被使用。列具有相同的宽度(1/n th 组的宽度)。使用 <group> 元素来产生一列字段。
  3. 为了给一部分赋予标题,向 <group> 元素中添加 string 属性:

    <group string="Time-sensitive operations">
    

    这取代了以前使用 <separator string="XXX"/>

  4. <field> 元素不会产生标签,除了 <group> element1 的直 接子元素。使用 <label for="field_name> 以产生字段的标签。
工作表表头

某些工作表具有包含一个或多个字段的标题,并且这些字段的标签仅在编辑模式下显示

Edit modeView mode

使用HTML文本, <div>, <h1>, <h2>… 生成较好的标题,<label> 使用 类 oe_edit_only 仅在编辑模式下显示字段的标签。类 oe_inline 将使字段内联(而不是分段):字段后面的内容将显示在同一行而不是下一行中。上面的表单由以下XML生成:

<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>

<label for="planned_revenue" class="oe_edit_only"/>
<h2>
    <field name="planned_revenue" class="oe_inline"/>
    <field name="company_currency" class="oe_inline oe_edit_only"/> at
    <field name="probability" class="oe_inline"/> % success rate
</h2>
按钮箱

许多相关动作或链接可以在表单中显示。例如,在表单中,动作“安排呼叫”和“安排会议”在使用CRM时具有重要的地位。而不是将它们放在“更多”菜单中,将它们直接放在工作表中作为按钮(在顶部),使它们更加明显,更容易访问。

从技术上来说,这些按钮放在一个 <div> 内,以便将它们分组为表格顶部的块

<div class="oe_button_box" name="button_box">
    <button string="Schedule/Log Call" name="..." type="action"/>
    <button string="Schedule Meeting" name="action_makeMeeting" type="object"/>
</div>
组和标题

现在使用一个 <group> 元素生成一列字段,并带有一个可选的标题。

<group string="Payment Options">
    <field name="writeoff_amount"/>
    <field name="payment_option"/>
</group>

建议表单上有两列字段。为此,只需将包含字段的 <group> 元素放在顶层的 <group> 元素中即可

要使 view extension 更简单, 建议在 <group> 元素上放置一个 name 属性,可以很容易在正确的地方添加 。

特殊情况: 小计

一些类被定义为在发票形式中呈现小计:

<group class="oe_subtotal_footer">
    <field name="amount_untaxed"/>
    <field name="amount_tax"/>
    <field name="amount_total" class="oe_subtotal_footer_separator"/>
    <field name="residual" style="margin-top: 10px"/>
</group>
占位符和内联字段

有时字段标签使表单太复杂。可以省略字段标签,在字段中放置一个占位符。仅当字段为空时,占位符文本才可见。占位符应该告诉在字段中放置什么,它 必须不能 是一个例子,因为它们常常与填充数据混淆。

还可以通过一个明确的块元素,如 <div> 中呈现它们“内联”来将字段组合在一起。这允许对语义相关的字段进行分组,就好像它们是单个(复合)字段。

以下示例取自 Leads 表单, 同时显示占位符和内联字段 (邮编和城市).

Edit modeView mode
<group>
    <label for="street" string="Address"/>
    <div>
        <field name="street" placeholder="Street..."/>
        <field name="street2"/>
        <div>
            <field name="zip" class="oe_inline" placeholder="ZIP"/>
            <field name="city" class="oe_inline" placeholder="City"/>
        </div>
        <field name="state_id" placeholder="State"/>
        <field name="country_id" placeholder="Country"/>
    </div>
</group>
图片

图像,如头像,应显示在工作表的右侧。产品形式如下:

上面的表单包含以sheet开头的<sheet>元素:

<field name="product_image" widget="image" class="oe_avatar oe_right"/>
标签

最多 Many2many 字段,类似,比较好呈现为标签列表。使用窗口 小部件 many2many_tags

<field name="category_id" widget="many2many_tags"/>

配置表单指南

配置形式的示例:阶段,离开类型等等。这涉及每个应用程序配置下的所有菜单项(如销售/配置)

  1. 没有标题(因为没有状态,没有工作流,没有按钮)
  2. 没有表单

对话框表单指南

例如:从时机中“调度呼叫”

  1. 避免分隔符(标题已经在弹出的标题栏中,所以另外一个分隔符不相关)
  2. 避免取消按钮(用户一般关闭弹出窗口得到相同的影响)
  3. 动作按钮必须突出显示(红色)
  4. 当有文本区域时,使用占位符,而不是标签或分隔符
  5. 像在常规窗体视图中,在<header>元素中放置按钮

配置向导指南

例如:设置/配置/销售

  1. 总是在线(没有弹出)
  2. 没有表单
  3. 保持取消按钮(用户不能关闭窗口)
  4. 按钮“应用”必须是红色

图表

图形视图用于可视化多个记录或记录组上的总数。根元素是 <graph> ,可以具有以下属性:

type
bar (默认), pieline 使用的图形类型
stacked
只用于 bar 图表。如果存在并设置为 True,则堆栈条在一个组内

图形视图中唯一允许的元素是 field ,它可以有以下属性:

name (必填)
要在图形视图中使用的字段名称。用于分组(而不是总和)
type

指示该字段是否应用作分组标准或组内的总和值。可能的值为:

row (默认)
组按指定字段。所有图形的类型支持至少是一个级别的分组,一些可能支持更多。对于数据透视图,每个组都有自 己的行
col
仅由数据透视表使用,按列组创建
measure
字段在组内聚合
interval
日期和日期时间字段,按指定的时间间隔分组(dayweekmonthquarteryear )而不是按特定的datetime上分组(固定二次决议)或日期(固定日决议)

枢轴

枢轴视图用于将聚合可视化为 pivot table。它的根元素是 <pivot>,它可以具有以下属性。

disable_linking
设置为 True 以将表单元格的链接删除到列表视图。
display_quantity
默认情况下,设置为 true 以显示列数

在枢轴视图中允许的元素与图形视图中相同

看板

看板视图是一个可视化的 kanban board :它将记录显示为"卡片",位于 list view 和一个不可编辑的 form view。记录可以按列分组以用于工作流可视化或操纵(例如,任务或工作进度管理)或未分组(仅用于可视化记录)

看板视图的根元素是 <kanban> ,可以使用以下属性:

default_group_by
如果通过动作或当前搜索未指定分组,是否应该将看板视图分组。应该是要分组的字段的名称,否则不指定分组
default_order
按顺序排序,如果用户尚未对记录进行排序(通过列表视图)
class
将HTML类添加到“看板”视图的根HTML元素中
quick_create

是否可以创建记录而不切换到表单视图。默认情况下,quick_create 在看板视图分组时启用, 否则禁用。

如果设置为 true 则始终启用,否则为 false 则始终禁用。

视图元素的可能子元素为:

field

声明要聚合或在看板 逻辑 中使用的字段。如果字段只显示在看板视图中,则不需要预先声明。

可能的属性包括:

name (必填)
要提取的字段的名称
sum, avg, min, max, count
显示相应的总数在看板列的顶部,该字段的值是总(字符串)的标签。仅支持每个字段的总动作。
templates

定义了一个列表 QWeb 模板。为了能看的更清楚,卡片定义可以分割为多个模板, 但是看版式图 必须 至少定义一个根模板 kanban-box,它将为每个记录渲染一次。

看板视图主要的使用标准 javascript qweb 并提供以下的上下文 变量:

instance
当前的 网络客户端(Web Client) 实例
widget
当前 KanbanRecord(),可以用来获取一些元信息。这些方法也可以直接在模板上下文中使用, 不需要通过 widget 来访问
record
具有所有请求字段作为其属性的对象。每个字段有两个属性 valueraw_value,前者根据当前的 用户参数进行格式化,后者是从a read() (对于根据用户的区域设置格式化的 日期和日期时间字段 formatted according to user's locale)
formats
web.formats() 模块来操作和转换值
read_only_mode

不言自明

按钮和字段

虽然大多数看板的模板是标准的 QWeb,特别是看板进程的 fieldbuttona 元素:

  • 默认字段由其格式化的值替换,除非它们匹配特定的看板视图的窗口小部件
  • 按钮和具有 type 属性的链接会执行Odoo相关的操作,而不是它们的标准HTML函数。可能的类型有:

    action, object
    标准行为 Odoo buttons,可以使用与标准Odoo按钮相 关的大多数属性
    open
    以只读模式在表单视图中打开卡的记录
    edit
    在可编辑模式下以表单视图打开卡的记录
    delete
    删除卡的记录并删除卡

Javascript API

class KanbanRecord()

Widget() 处理单个记录到卡的渲染。在它自己的渲染模式上下文中作为 widget 可见。

kanban_color(raw_value)

将颜色分割值转换为看板颜色类 oe_kanban_color_color_index。内置的CSS提供了一个 color_index 为9的类。

kanban_getcolor(raw_value)

将颜色分割值转换为颜色索引(默认情况下介于0到9之间)。颜色分割值可以是数字或字符串。

kanban_image(model, field, id[, cache][, options])

生成指向指定字段的URL作为图片访问。

Arguments
  • model (String) -- 模型托管图像
  • field (String) -- 保存图像数据的字段的名称
  • id -- 包含要显示的图像的记录的标识符
  • cache (Number) -- 应覆盖浏览器默认的缓存持续时间(以秒为单位)。 0 表示完全禁用缓存
Returns
图片网址
kanban_text_ellipsis(string[, size=160])

剪辑超出指定大小的文本,并向其添加省略号。可以用于显示潜在非常长的字段(例如描述)的初始部分

日历

日历视图将记录显示为每日,每周或每月日历中的事件。它们的根元素是 <calendar> 。日历视图上的可用属性包括:

date_start (必填)
保存事件的开始日期记录的字段名称
date_stop
保存事件的结束日期记录字段的名称,如果提供了 date_stop 记录,则记录在日历中直接可移动(通 过拖放)
date_delay
替代 date_stop,提供事件的持续事件,而不是结束日期
color
用于 颜色分割 记录字段的名称。同一色段中的记录在日历中被分配相同的高亮颜色,颜色是随机地分配
event_open_popup
在对话框中打开事件,而不是切换到表单视图,默认情况下禁用
quick_add
在点击时启用快速事件创建:只询问用户一个 name,并试图创建一个新的事件,只有那个和点击的事件时 间。如果快速创建失败,则返回到完整表单对话框
display
用于事件显示的格式字符串,字段名称应该在括号中 [ and ]
all_day
记录上的布尔字段的名称,其指示相应的事件是否被标记为day-long(并且持续时间是不相关的)
mode
加载日历时默认显示模式。 可能的属性有: day, week, month

甘特

甘特视图适用于当地显示甘特图(用于调度)

甘特视图的根元素 <gantt/>,它没有子元素,但是可以采取以下属性:

date_start (必填)
为每个记录提供事件的开始日期时间的字段名称。
date_stop

为每个记录提供时间的结束持续时间的字段名称。可以替换为 date_delay 。必须提供 date_stopdate_delay 中的一个(且只有一个)

如果记录的字段为 False ,则假定它是一个“点事件”,结束日期将设置为开始日期

date_delay
提供时间持续时间的字段的名称
duration_unit
其中之一 minute, hour (默认), day, week, month, year
default_group_by
要对任务进行分组的字段名
type

gantt 经典甘特视图(默认)

consolidate 第一个子项的值被合并在甘特的任务中

planning 子项显示在甘特的任务中

consolidation
字段名称以在记录单元中显示合并值
consolidation_max

具有 "group by" 字段作为键的字典和在以红色显示单元格之间可以达到的最大合并值(例如 {"user_id": 100})

string
要显示在合并值旁边的字符串,如果未指定,则将使用合并字段的标签
fold_last_level
如果设置了值,则折叠最后一个分组级别
round_dnd_dates
可以将任务的开始和结束日期四舍五入为最接近的刻度
drag_resize
调整任务大小,默认为 true

图表

图表视图可用于显示记录的有向图。根元素是 <diagram> 不带任何属性。

图表视图的可能子项为:

node (必填,1)

定义图形的节点。其属性是:

object
节点的Odoo模型
shape
条件形状映射类似于颜色和字体 the listview。唯一有效的形状是 矩形 (默认形状是省略号)
bgcolor
shape 相同,但有条件地为节点映射背景颜色。默认背景颜色是白色,唯一有效的替代是 grey
arrow (必填,1)

定义图像的有向边。其属性是:

object (必填)
边缘的Odoo模型
source (必填)
Many2one 指向的边缘模型的字段的边缘的源节点记录
destination (不可或缺)
Many2one 字段的边缘模型指向边缘的节点记录
label
Python 属性列表 (引用字符串)。相应的属性的值将被连接并显示为边的标签
label
图表的说明, string 属性定义了笔记的内容,每个 label 作为图表标题中的段落输出,容易看见,但没有特别强调

搜索默认值

搜索字段和过滤器可以通过操作 context 使用 : samp:[UNKNOWN NODE title_reference] keys来配置。对于字段,值应该是在字段中设置的值,对于过滤器,它是一个布尔值。例如:假设 foo 是一个字段, bar 是一个动作上下文的过滤器:

{
  'search_default_foo': 'acro',
  'search_default_bar': 1
}

将自动启用 bar 过滤器并搜索 acrofoo 字段

QWeb

QWeb 视图是标准的 : ref:[UNKNOWN NODE title_reference] 模板在视图的 arch 。它们没有特定的根元素。

QWeb视图只能包含一个模板4,而模板名称 必须 匹配视图的完整(包括模块名称) external id.

模板(template) 应该用作定义QWeb视图的快捷方式。

[1] 用于向后兼容的原因
[2] 添加了一个扩展函数,用于在QWeb视图中进行更简单的匹配: hasclass(*classes) 如果 上下文节点具有所有指定的类
[3] 由于历史原因,它的起源于树形视图,稍后被重新用于更多的表/列表类型显示
[4] 或者没有模板,如果它是继承的视图,则 它应该只包含xpath元素