大家好,
最近听说,很多同学都未能非常准确地理解 odoo 架构的双渲染模式,今天特别来进行展开讲述。
原理:
- 首先通过 QWeb 引擎把 xml 模板与 data 渲染为 HTML DOM。(Python 渲染)
- 然后,利用 JavaScript 编写的 Widget 对 “步骤 1” 中获得的 DOM 进行二次渲染,得到最终视图展示效果。(JavaScript 渲染)
- 最终,得到精修后的 HTML DOM。
注意,有几个概念,需要特别说明。
- xml 是一种描述树形结构的计算机语言。
- JavaScript 是一种面向对象的语言。故此,在 Widget 代码中,可看到,都是对 $el (目标对象)进行操作。其实就是对 DOM 中,<field widget="xx"> 所定位到的那个树节点进行操作。
说明:为了方便大家快速上手,可以参考以下图示。
谢谢!
好了,今天就到这里。
欢迎关注我们,下一节更加精彩!
OpenERP.HK Team