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文件的一般结构如下:

  1. <?xml version="1.0"?>
  2. <openerp>
  3. <data>
  4. <record model="model.name_1" id="id_name_1">
  5. <field name="field1"> "field1 content" </field>
  6. <field name="field2"> "field2 content" </field>
  7. (...)
  8. </record>
  9. <record model="model.name_2" id="id_name_2">
  10. (...)
  11. </record>
  12. (...)
  13. </data>
  14. </openerp>

field标记的属性如下:

name: 必需的, 字段名
eval: 可选的, 一个python表达式, 通过它计算值
ref: 对本文件中出现过的id的引用
model: 搜索时使用的模型
search: 一个查询

odoo开发笔记--模型中常用的方法的更多相关文章

  1. odoo开发笔记 -- 模型字段定义中设置默认值

    例如: company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env['res ...

  2. odoo开发笔记 -- 模型后台方法返回前端form视图和tree视图的写法

    待补充: 参考:工作单跳转到通关清单 --form(一对一) 工作单跳转到报关单列表 --tree (一对多)

  3. odoo开发笔记--模型字段compute用法

    compute属性,实现的主要功能是,前端界面选择某个字段的时候,指定与该字段关联的其他字段可以关联,并联动的显示. 可以和inverse属性同时使用,不加inverse属性的话,前端界面的显示效果只 ...

  4. odoo开发笔记 -- 模型一对多tree视图弹窗效果实现

    实现效果参考: 1. 开发者模式 -- 设置 -- 工作流 -- 编辑 -- 添加项目 2. 会计模块 -- 管理 -- 付款条款 -- 编辑/创建 实现方式,很简单.只要视图界面写个一对多关联字段就 ...

  5. odoo开发笔记 -- 模型(类)继承的几种机制

    1. 类继承 2. 原型继承 3. 委托继承 待完善 https://www.cnblogs.com/chenshuquan/p/10523626.html

  6. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  7. org.apache.commons.lang.StringUtils中常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  8. String对象中常用的方法

    String对象中常用的方法   1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始 ...

  9. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

随机推荐

  1. Multiplexer

    definition  a device that selects one of several analog or digital input signals and forwards the se ...

  2. goole Advance client 离线安装

    1.下载插件:Advanced Rest Client 2.最新版的Chrome不支持本地安装插件,所以我们要使能开发者模式 3.把插件后缀名crx改为zip 4.解压,点击‘加载正在开发的扩展程序’ ...

  3. Keras预测股票

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sat Nov 18 21:22:29 201 ...

  4. 行转列group_concat()函数妙用

    测试环境准备: mysql> create table test01(name varchar(20),address varchar(20)); Query OK, 0 rows affect ...

  5. 一个发送邮件的java类,包含多种发送方法

    import java.util.Calendar;import java.util.Date; import java.util.Properties; import javax.mail.Addr ...

  6. SurfaceView+MediaPlayer播放视频

    SurfaceView拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行行绘制.又由于不占用主线程资源,SurfaceView一方面可以实现复杂而高效的UI,另一方面又不 ...

  7. 学习JavaScript计划

    1.首先根据视频做小例子 2.每天记录到博客 3.这次坚持把这个学完,并完成接口测试界面的编写

  8. cxGrid动态设置单元格对齐方式

    cxGrid动态设置单元格对齐方式 2013年10月08日 00:52:49 踏雪无痕 阅读数:2150更多 个人分类: cxGrid   判断: //uses cxTextEditcxGrid1DB ...

  9. 在Delphi中处理word文档与数据库的互联 1

    在Delphi中处理word文档与数据库的互联 ---- 目前,Delphi被越来越多的人选中作为MIS系统开发中的前台工具.在以Delphi为前台,一些大型数据库为后台的MIS系统中,图形的处理不可 ...

  10. vue项目webpack中Npm传递参数配置不同域名接口

    项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...