odoo api介绍
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介绍的更多相关文章
- 常用ArcGIS for Silverlight 开发API介绍
1.API介绍 2.Map对象 3.Layer对象 4.Symbol对象 5.Task对象
- Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解
Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...
- python学习笔记(win32print API介绍)
最近博主在研究用python控制打印机 这里整理下win32print的API介绍,官网地址http://timgolden.me.uk/pywin32-docs/win32print.html Op ...
- 使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍
一.video的js知识点: controls(控制器).autoplay(自动播放).loop(循环)==video默认的: 自定义播放器中一些JS中提供的方法和属性的记录: 1.play()控制视 ...
- 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. ...
- APP自动化框架LazyAndroid使用手册(3)--核心API介绍
作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...
- Spring Boot 2.x 编写 RESTful API (一) RESTful API 介绍 & RestController
用Spring Boot编写RESTful API 学习笔记 RESTful API 介绍 REST 是 Representational State Transfer 的缩写 所有的东西都是资源,所 ...
- FastDFS api介绍
1. 命令行api介绍 FastDFS提供了可用于运维测试的命令行api,下面进行介绍: 1.1 fastdfs服务管理 tracker进程服务管理脚本 /etc/init.d/fdfs_tracke ...
- ElasticSearch的API介绍
ElasticSearch的API介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ES是基于Restful风格 1>ES是基于Restful风格 Elasticsea ...
随机推荐
- [Android]通过adb shell input上报命令模拟屏幕点击事件【转】
本文转载自:http://blog.csdn.net/yuanzihui/article/details/52871652 常用的 input上报命令: input text 1234 实际向界面注入 ...
- Silverlight,Windows 8应用开发实例教程系列汇总
Kevin Fan分享开发经验,记录开发点滴 Silverlight,Windows 8应用开发实例教程系列汇总 2012-06-18 01:05 by jv9, 2145 阅读, 3 评论, 收藏, ...
- PCB CAM自动化程序协同业务流
最近IBM在做预审阶段的参数信息提取相关的工作,关于Gerber中的图形方面的信息数据,需由工程IT提供异步Web接口,供IBM创建任务,待Gerber图形信息分析完成后再结果将数据返回给IBM;这里 ...
- PCB genesis SET取中心点--算法实现
最新ICS工厂有一项incam脚本新需求,这里介绍5种解决方法解决 需求如下图所示:绿色所圈处是是需求出的中心点(图形间距一致归为一类并计算中心点坐标) 前题条件:1.一个SET里面可能有多个CAM, ...
- js addeventlistener 刮刮贴
<!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...
- 【Leetcode146】LRU Cache
问题描述: 设计一个LRU Cache . LRU cache 有两个操作函数. 1.get(key). 返回cache 中的key对应的 val 值: 2.set(key, value). 用伪代码 ...
- 研磨JavaScript系列
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言.同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作.它最初由网景公司 ...
- 【Java设计模式】工厂模式
简单工厂模式 简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类.比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标. 示例代码: //一个产品接 ...
- 笔记《精通css》第5章 链接应用样式
第5章 链接应用样式 1.链接伪类选择器 a : link{ } (寻找没有被访问过的链接) a : visied{ }(寻找被访问过的链接) 动态伪类选择器 a : hover ...
- Android开发笔记(5)——方法调用(基础)
转载请注明——博客园igoslly:http://www.cnblogs.com/igoslly/p/6833544.html 在实际方法调用中,程序按顺序逐句执行,直到“}”结束. 为避免程序大 ...