QWeb JavaScript评估上下文

来自Odoo大V社-odoo中文开发手册
95102545讨论 | 贡献2017年8月7日 (一) 23:16的版本

跳转至: 导航搜索

许多的Qweb指令使用表达式计算并产生一定的结果。当从客户端使用时,正如看板视图的情况一样,这些表达式是用JavaScript编写的。它们在上下文被计算,上下文有一些有用的变量可用。

一个记录对象可用,表示由服务器请求的字段所组成的记录被渲染。该字段的值可以使用raw_value或value属性访问:

 raw_value 是服务器read()方法返回的值,所以它更适合用在条件表达式。
 value 是根据用户设置进行格式化的值,并用于在用户界面中显示。这通常是与date/datetime and float/monetary字段相关。

Qweb上下文计算也被JavaScript的Web客户端实例引用。为了充分利用它们,我们需要对Web客户端架构有一个很好的理解,但是我们不能详细地理解它。作为参考,以下标识符在Qweb表达式求值是可用的:

 widget 是参考当前kanbanrecord()部件对象,负责当前把记录渲染到看板卡片。它暴露了一些有用的辅助功能,我们可以使用。
 record 是 widget.records 的快捷方式,并提供对可利用的字段的访问。
 read_only_mode 显示当前视图是否是只读模式(非编辑模式),它是widget.view.options.read_only_mode的快捷方式。
 instance是全WEB客户端实例的引用。

值得注意的是,一些字符是不允许内表达式。小写的符号(<)就是这样的情况。这是因为XML标准中,这样的字符具有特殊的含义,不应该被用于XML内容中,非> =是对<的替代,但通常的做法是使用下面的替代符号,可用于不等式操作:

lt 小于 
lte 小于等于
gt 大于
gte大于等于