旧版本差异参考

当前日期下,所谓的旧版本是指13.0之前的版本。

API差异

one

作用: 表示被封装的方法接受单一的对象,用于处理一些单个对象的方法。 返回值: [None](部分不负责的教程里说不返回值) v7版本写法: def funct(self,cr,uid,ids,context)

举例: 视图文件中添加一个按钮,对应的触发方法:

@api.one
def button_test(self):
    self.name = "xxx"

multi

作用:表示被封装的方法接收一个集合对象,正好与one对应。 返回值: 被封装方法的返回值 v7版本写法: model.method(cr, uid, ids, args, context=context)

multi典型的用法即odoo对象的write方法:

@api.multi
def write(self, vals):
    res = super(Book, self).write(vals)
    return res

这里的self是一个集合对象,vals是待更新的字段和值的字典,这里的例子我们没有用到self,只是调用了父类的write方法,将vals写入到数据库中。如果我们要修改某个值,需要对self进行迭代,然后更新字段的值。

ir.actions

在v12及更早的版本中,还支持以下属性:

  • view_type: 用于展示列表视图的类型,可选值有tree和form。
  • src_model: 该动作绑定的源模型(在该模型上打开动作)。
  • multi:布尔值,True代表仅显示在树形列表视图中。(13.0+版本的替代者是binding_view_types)

results matching ""

    No results matching ""