odoo开发笔记--模型中常用的方法
create方法
在数据表中插入一条记录(或新建一个对象的resource)
格式:
def create(self,cr,uid,vals,context={})
参数:
vals:待新建记录的字段值,是一个字典。
context(optional):OpenERP几乎所有方法都带参数context,context是一个字典,存放一些上下文值
返回值:新建记录的id
search方法
查询符合条件的记录
格式:
def search(self,cr,uid,args,offset=0,limit=2000)
参数:
args:包含检索条件的tuple列表,格式为[('name_of_the_field','operators',value),...]。可用的operators有:=,<,>,<=,>=,in,like,child_of
offset(optional):偏移记录数,表示不返回检索结果的offset条
limit(optional):返回结果的最大记录数
返回值:符合条件的记录的id list
read方法
返回记录的指定字段值列表
格式:def read(self,cr,uid,ids,fields=None,context={})
参数:
ids:待读取的记录的id列表,比如[1,3,5]
fields(optional):待读取的字段值,不指定则读取所有字段
context(optional):context是一个字典,存放一些上下文值
返回值:
返回读取结果的字典列表
browse方法
浏览对象及其关联对象。从数据库中读取指定的记录,并生成对象返回。和read等方法不同,本方法不止返回简单的记录返回对象。返回的对象可以直接使用‘.’存取对象的字段和方法,也可以通过关联字段直接访问“相邻”对象。
格式:
def browse(self, cr, uid, select, offset=0, limit=2000)
例:
addr_obj = self.pool.get('res.partner.address').browse(cr,uid,contact_id)
nom = addr_obj.name
compte = addr_obj.partner_id.bank
先从对象池中取得对象res.partner.address,调用它的方法browse,取得id=contact_id的对象,然后直接用“name”字段以及关联对象partner的银行(addr_obj.partner_id.bank)
参数:
select:待返回的对象id,可以是一个id或是一个id列表
offset(optional)偏移记录数,表示不返回检索结果的offset条
limit(optional):返回结果的最大记录数
返回值:返回对象或对象列表
注意:
本方法只能在Server上使用,不支持rpc等远程调用
write方法
保存一个或几个记录的一个或几个字段
格式:def write(self,cr,uid,ids,vals,context={})
参数:
ids:待修改的纪录的id列表
vals:待保存的字段新值,是一个字典
context(optional):context是一个字典,存放一些上下文值
返回值:
没有异常情况下返回True,否则抛出异常
unlink方法
删除一个或几个记录
格式:def unlink(self,cr,uid,ids)
参数:
ids:待删除的记录的id列表
返回值:如果没有异常,返回True,否则抛出异常
default_get方法
复位一个或多个字段的缺省值
格式:def default_get(self,cr,uid,fields,form=None,reference=None)
参数:
fields:希望复位缺省值的字段列表
返回值:
字段缺省值,是一个字典
default_set
充值字段的缺省值
格式:def default_set(self,cr,uid,field,value,for_user=False)
参数:
field:待修改缺省值的字段
value:新的缺省值
for_user(optional):修改是否只对当前用户有效,还是对所有用户有效,缺省值是对所有用户有效
返回值:True
错误、警告、提示
检察业务逻辑中的错误,终止代码执行,显示错误或警告信息。
raise osv.except_osv(_("Error!"),_("Error Message."))
日期时间方法
日期格式化字符串:DATE_FORMAT = “%Y-%m-%d”
日期时间格式化字符串:DATETIME_FORMAT = “%Y-%m-%d %H:%M:%S”
OpenERP对象中字段赋值为当前日期:fieds.date.context_today(),fields.data.context_today(cr,uid,context=context) ,fields.date.today()
OpenERP对象中字段赋值为当前时间:fieds.datetime.now(),fields.datatime.context_timestamp(cr,uid,datetime.now(),context=context)
Python中获取当前日期:datetime.data.today()
Python中获取当前时间:datetime.datetime.now()
XML文件
模块目录下的xml文件用于模块安装/更新时初始化/更新数据库, 例如:
定义初始和示例数据;
定义视图;
定义报表;
定义工作流;
OpenERP对象可以通过使用该对象相应的XML文件插入到相应的PostgreSQL表中, 一个OpenERP XML文件的一般结构如下:
- <?xml version="1.0"?>
- <openerp>
- <data>
- <record model="model.name_1" id="id_name_1">
- <field name="field1"> "field1 content" </field>
- <field name="field2"> "field2 content" </field>
- (...)
- </record>
- <record model="model.name_2" id="id_name_2">
- (...)
- </record>
- (...)
- </data>
- </openerp>
field标记的属性如下:
name: 必需的, 字段名
eval: 可选的, 一个python表达式, 通过它计算值
ref: 对本文件中出现过的id的引用
model: 搜索时使用的模型
search: 一个查询
odoo开发笔记--模型中常用的方法的更多相关文章
- odoo开发笔记 -- 模型字段定义中设置默认值
例如: company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env['res ...
- odoo开发笔记 -- 模型后台方法返回前端form视图和tree视图的写法
待补充: 参考:工作单跳转到通关清单 --form(一对一) 工作单跳转到报关单列表 --tree (一对多)
- odoo开发笔记--模型字段compute用法
compute属性,实现的主要功能是,前端界面选择某个字段的时候,指定与该字段关联的其他字段可以关联,并联动的显示. 可以和inverse属性同时使用,不加inverse属性的话,前端界面的显示效果只 ...
- odoo开发笔记 -- 模型一对多tree视图弹窗效果实现
实现效果参考: 1. 开发者模式 -- 设置 -- 工作流 -- 编辑 -- 添加项目 2. 会计模块 -- 管理 -- 付款条款 -- 编辑/创建 实现方式,很简单.只要视图界面写个一对多关联字段就 ...
- odoo开发笔记 -- 模型(类)继承的几种机制
1. 类继承 2. 原型继承 3. 委托继承 待完善 https://www.cnblogs.com/chenshuquan/p/10523626.html
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
- org.apache.commons.lang.StringUtils中常用的方法
org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...
- String对象中常用的方法
String对象中常用的方法 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始 ...
- 项目中常用js方法整理common.js
抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...
随机推荐
- 树状数组(hdu-4325,hdu-1166,pat-1057)
1.hdu-4325 题意:插花,要么给出插花的范围,要么查询某个点的花的个数. 思路:通过更新,每次更新区间S到T的数值,表插入花(这一点一开始没想到), 要么查询某个点的花的数目. (与以往单纯的 ...
- springboot深入学习(五)-----spring data、事务
spring data项目是spring解决数据访问问题的一系列解决方案,包含了大量关系型数据库以及非关系型数据库的访问解决方案. 一.spring data jpa 1.简介 jpa是一套规范,不提 ...
- 检索 COM 类工厂中 CLSID 为 {10021F00-E260-11CF-AE68-00AA004A34D5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
ASP.NET利用SQLDMO可以实现在线备份.还原数据库等各种功能. 由于客户的数据库和WEB服务不再同一台服务器,把网站部署在服务器上以后,运行程序,提示如下错误 当使用Interop.SQLDM ...
- Hadoop Hbase理论及实操
Hbase特点 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop生态系 ...
- CYS-Sqlite数据导入工具
界面: 曹永思 下载地址:asp.net 2.0版 Sqlite数据导入工具.zip 欢迎转载,转载请注明出处,希望帮到更多人.
- mybatis sql xml 字符逃脱
where a 不等于 1 where a <> 1 where a <![CDATA[<>]]> 1
- 利用tcpcopy引流过程
tcpcopy是一个tcp流量复制工具,当前还支持udp和mysql流量的复制. 目的: 将机器10.24.110.21的5000端口流量引流到机器10.23.25.11的5000端口. 示例:将10 ...
- 【笔记】CSS选择器整理(IE低版本支持性测试)
时间:2015.05.11 参考附件:css选择器.xmind(网友共享) 查看链接:http://www.w3school.com.cn/cssref/css_selectors.asp htt ...
- jQuery如何获取元素及选择器的参考
获取元素 Jquery当中几乎所有的功能.选择.事件处理等都用到了这个函数.通常用来获取元素,获取到的元素都会被存储为jQuery对象. 例如: 先设定一个id为aaa的div <body> ...
- HDU2444 The Accomodation of Students
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...