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) { $ ...
随机推荐
- 关于拼接SQL语句sqlMap的使用方法
1.为什么使用? 主要还是为了代码中获取到值,然后带入SQL语句中拼接查询 2.怎么使用? 1)bean继承了BaseEntity类,该类中有 /** * 自定义SQL(SQL标识,SQL内容) */ ...
- Codeforces Round #517 (Div. 2, based on Technocup 2019 Elimination Round 2) D. Minimum path(字典序)
https://codeforces.com/contest/1072/problem/D 题意 给你一个n*n充满小写字母的矩阵,你可以更改任意k个格子的字符,然后输出字典序最小的从[1,1]到[n ...
- centos7 新增ip
1.进入network-scripts目录:cd /etc/sysconfig/network-scripts/ 2.复制ifcfg-eth0: cp ifcfg-eth0 ifcfg-eth0:0 ...
- Django开发环境搭建
最近笔者使用了Django框架作为项目model层的数据对象处理. 关于Django的开发环境,需要安装以下内容: 1.安装python 2.安装VCForPython27.msi 3.安装pycha ...
- Atcoder Grand-014 Writeup
A - Cookie Exchanges 题面 Takahashi, Aoki and Snuke love cookies. They have A, B and C cookies, respec ...
- Linux学习(2)- 正则表达式基础
Linux学习(2)- 正则表达式基础 一.基础正则表达式介绍与练习 学习内容 正则表达式特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:] ...
- Redis集群的主从切换研究
目录 目录 1 1. 前言 1 2. slave发起选举 2 3. master响应选举 5 4. 选举示例 5 5. 哈希槽传播方式 6 6. 一次主从切换记录1 6 6.1. 相关参数 6 6.2 ...
- 正则表达式Regular expressions
根据某种匹配模式来寻找strings中的某些单词 举例:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi 我们可以把这个 ...
- IOS绘图详解
http://blog.163.com/wkyuyang_001/blog/static/10802122820133190545227/
- java中逗号分隔的字符串和List相互转换
1.将逗号分隔的字符串转换为List String str = "a,b,c"; List<String> result = Arrays.asList(str.spl ...