首页 > Web开发 > 详细

qweb

时间:2017-01-07 16:20:55      阅读:308      评论:0      收藏:0      [点我收藏+]

qweb 是 odoo的模板系统, 在 odoo系统中, 它有不同的用途和实现,

  • 一个是 web client 的 widget 的渲染引擎, 它是通过 javascript实现的,也是 最早引入到 odoo系统的,在 OpenERP 最初引入 web client 时 加入的,现在使用 qweb2.js 这个 libaray 对模板进行 渲染
  • 另外用作 web page、report、看板 等的模板引擎,它是 通过 python 实现的

       

   

web client 使用的 qweb template 在 manifest 文件中的 qweb项目 进行定义,

技术分享

   

qweb 定义的 模板xml 将在 odoo启动的时候, 被 打包为 /web/webclient/qweb 资源, 例如

技术分享

   

打包的具体代码是

技术分享

   

通过 concat_xml 将 所有的 qweb 打包合并在一起,提供给 webclient 使用。

   

   

web page 、report、kankan 归根到底 都是 ir.ui.view ; 其中 report、template 均是 ir.ui.view 的别名, 他们 都是 通过标准的 data file 进行定义, 例如

技术分享

   

webclient_templates 定义了 web client 页面的骨架

技术分享

   

这些 data file 在 安装模块的时候, 被安装到 ir.ui.view 里面去, 例如

技术分享

   

因此, 对 web page 的修改 可以直接 在 view 进行 修改

   

同样, report 的内容也是 装载如到 view 里面, 例如

技术分享

   

   

对于看板,也可以 签入 qweb 定义的 页面片段,例如

技术分享

   

qweb

原文:http://www.cnblogs.com/odoouse/p/6259486.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!