odoo api修饰器介绍与应用

参考文档:https://www.cnblogs.com/kfx2007/p/6093994.html

一、one

one的用法主要用于self为单一集合的情况,被one装饰的方法会返回一个list[None]

例子:

@api.one
def _get_date(self):
self.date=fields.Date.today()

二、multi

multi则要求self是多个记录的合集,env中包含ids参数

例子:

@api.multi
def write(self,vals):
if vals.get('name'):
val['name']=u'test'
return super(test,self).write(vals)

三、model

model要求self是一个记录集,env中并不包含ids参数,因此重构write和unlink等方法,不能使用model修饰器

@api.model
def write(self,vals):
vals={'name':'test',}
return super(test,self).create(vals)

四、contrains

@api.constrains('completion_time')
def _check_completion_time(self):
for i in self:
if datetime.datetime.strptime(i.completion_time, "%Y-%m-%d %H:%M:%S") < datetime.datetime.utcnow():
raise ValidationError('完成时间需大于当前时间')

五、depends

depends 主要用于compute方法,用来标该方法依赖于哪些字段的装饰

@api.depends('completion_time')
def compute_completion_time(self):
for i in self:
if i.completion_time:
if datetime.datetime.strptime(i.completion_time, "%Y-%m-%d %H:%M:%S") > datetime.datetime.utcnow():
i.overdue_status = u'未逾期'
else:
i.overdue_status = u'已逾期'

六、onchange

onchange的使用方法非常简单,就是当字段发生改变时,触发绑定的函数

@api.onchange('responsible_department')
def onchange_responsible_person(self):
return {
'domain': {'responsible_person': [('department_id', '=', self.responsible_department.id)]},
}

七、return

returns的用法主要是用来指定返回值的格式,它接受三个参数,第一个为返回值的model,第二个为向下兼容的method,第三个为向上兼容的method

odoo api介绍的更多相关文章

  1. 常用ArcGIS for Silverlight 开发API介绍

    1.API介绍 2.Map对象  3.Layer对象 4.Symbol对象 5.Task对象

  2. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  3. python学习笔记(win32print API介绍)

    最近博主在研究用python控制打印机 这里整理下win32print的API介绍,官网地址http://timgolden.me.uk/pywin32-docs/win32print.html Op ...

  4. 使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍

    一.video的js知识点: controls(控制器).autoplay(自动播放).loop(循环)==video默认的: 自定义播放器中一些JS中提供的方法和属性的记录: 1.play()控制视 ...

  5. Commons-lang API介绍

    4.1 Commons-lang API介绍 4.1.1 StringUtils 4.1.2 StringEscapeUtils 4.1.3 ArrayUtils 4.1.4 DateUtils 4. ...

  6. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  7. Spring Boot 2.x 编写 RESTful API (一) RESTful API 介绍 & RestController

    用Spring Boot编写RESTful API 学习笔记 RESTful API 介绍 REST 是 Representational State Transfer 的缩写 所有的东西都是资源,所 ...

  8. FastDFS api介绍

    1. 命令行api介绍 FastDFS提供了可用于运维测试的命令行api,下面进行介绍: 1.1 fastdfs服务管理 tracker进程服务管理脚本 /etc/init.d/fdfs_tracke ...

  9. ElasticSearch的API介绍

    ElasticSearch的API介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ES是基于Restful风格 1>ES是基于Restful风格 Elasticsea ...

随机推荐

  1. 全面解析布局(Grid & Canvas &StackPanel &Wrappanel) 转

    写这篇文章前,特意在百度搜索了一下,发现目前网上介绍布局的文章不多,质量也不是很高.拿grid和canvas来讲,这两个布局容器还是有许多小细节值得讲的,如果你不了解的话,开发中经常会遇到一些让人匪夷 ...

  2. js中的slice()、substring()、substr()、split()、join()、indexof()

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  3. bzoj4247: 挂饰(背包dp)

    4247: 挂饰 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1136  Solved: 454[Submit][Status][Discuss] ...

  4. P2258 子矩阵(dp)

    P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4 ...

  5. C# 针对文件夹的操作

    //创建文件夹Directory.CreateDirectory(Server.MapPath("a"));Directory.CreateDirectory(Server.Map ...

  6. Netty--数据通信和心跳检测

    数据通信 概述: netty的ReadTimeOut实现方案3 服务端: public class Server { public static void main(String[] args) th ...

  7. vs2010 视图 aspx页面设计窗口创建控件时出错 未将对象引用设置到对象的实例

    第一步,首先关闭aspx页面 第二步,在单击项目右击,选择“清理” 第三步,然后在打开aspx页面,就可以看到正常的页面了. 注:一次不行的会,多做几次. 如果还是不行的话,你看看你.cs页面是否继承 ...

  8. C# 自己用到的几个参数转换方法

    /// <summary> /// Method:CommandHelper /// Author:Liuyangyi /// Data:2016-05-10 /// </summa ...

  9. Algebrizer

    Microsoft SQL Server 2012 Internals 把 SQL 语句的处理分为四个阶段,分别是 解析.绑定.优化.执行,如图所示:     解析(Parse)主要是语法分析,比较简 ...

  10. jQuery :even

    此选择器匹配所有索引值为偶数的元素,从0开始计数. jQuery1.0版本添加. 语法结构: jQuery( ":even" ) 代码实例: <!doctype html&g ...