Qweb的一些介绍

定义:

  • Qweb被用作OpenERP的web客户端模板引擎。它是一种基于XML的模板语言。
  • 特征:
    • 完全在客户端浏览器中完成渲染
    • 一个模板文件中可以包含多个模板,通常一个模板文件中包含一个模板
    • 对OpenERP的web组件有很好的支持,也可以用于除开OpenERP web外的其他框架

OpenERP中的Qweb

关键点说明

  • Qweb模板在XML属性上加前缀“t-”表示
      t-name:模板名称,如:
      
      t-foreach=iterable:循环遍历标签
       
      t-esc:引用实例参数,可以使用任意JavaScript表达式;如
      
      t-att-attName:对象属性设置,如对input输入控件设置value:
      
    

一般用法

  • 条件表达式
      
            
  • Estimate
    • 比较符号
        lt(<)    lte(<=)   gt(>)   gte(>=)
        注 < <= 不能用在表达式中,只能用字母代替
      
  • 输出值t-esc和t-raw
       
       
       t-esc  过滤安全值,像html元素
       t-raw  数据库中的原始数据
    
  • 循环
      
          ;
      
    
    t-foreach="record.message_follower_ids.raw_value.slice(0, 3)" 还可以切片
    还有一些变量
    rec_index 从0开始循环索引
    rec_size  要循环的记录集大小
    rec_first  第一个元素
    rec_last   最后一个元素
    rec_even   index为偶数时为真
    rec_odd    index为奇数时为真
    rec_parity  是偶数和奇数
    rec_all  表示循环结束的标识
    rec_value 循环一个字典时,的键的值
    
  • 动态属性
    • t-att- prefixed 如 的src 就可以 t-att-src="…"
  • 属性的字符替换
    
        
    
    
    • t-attf-prefixed 取代内容,上面的就是动态类
  • 变量设置
    #设置变量 t-set t-value
    
    设置了变量 new_variable 的值 为 True
    t-value 也可以是表达
     
    设置了变量foo值为3
    t-value可以是一段html
    
        
  • ok
  • 设置了变量foo 为
  • ok
  • 设置属性
    * t-att-$name
    $name 是属性名
    
    结果:
    * t-attf-$name 用于混合,有字符串也有变量,变量用{{}}
  • * t-att=mapping 键值对组成属性,主要用多对
    结果:
    * t-att=pair 一对,这个对一个是键,后一个是值
    <=>
    结果:
    *

    结果显示

    * t-att 接受字典

  • 包含其他模板
      
          
    。。。
    • t-call 调用其它模板
      
      
    
    • 复用灵活
      
          
    。。。
  • 为文本加省略号
      
      过超32个字符就加... 不显示内容了
    
  • 自定义CSS和JavaScript的资源
      
      
      
          
      
      
    
  • 字段渲染
     @http.route('hello/
          

  • 可用字段选择修饰
       
      -------------
      
      ------------
      
    
  • 模板继承
      
      
    
     得到的结果:
         

    Extended!

    Base template

    -------------- 得到的结果:

    A

    Extended!

    B

  • 调用系统的基础模板
      
       
    
  • 调试
      t-debug
    
      调用调试器使用PDB的set_trace API. 这个参数应该是一个模块的名称,在这个模块上set_trace 方法被调用:
      
      
      相当于importlib.import_module("pdb").set_trace()
    

你可能感兴趣的:(odoo)