odoo 二次开发的方法】的更多相关文章

介绍 二开时模型创建完毕并配好视图后对于基本的CRUD操作不需要再在代码中实现,框架会自动提供这些功能,但如果我们的开发需求不仅仅是对当前对象的CRUD时,就需要在框架原来方法的基础上扩展出一些自己所需要的操作. odoo8以前与odoo8以后使用两种不同的model接口形式(odoo8两者都可使用),odoo8以前old api中,记录ids和上下文环境均通过参数传入def old_api (self, cr, uid, ids, context),比较凌乱,不建议使用.以下内容均为new a…
一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定义添加只读设置 方法二:视图上加只读设置 重启服务,升级模块,即可看到我们的修改生效了. 提示:修改了python代码(非字段内容)只需重启服务,修改了视图文件需要升级模块. 唯一性的验证也有两种方法,一种是利用_sql_constraint另一种是利用API的contraints装饰器. 方法一:…
一,安装的两种方式: 1) deb包安装: 此安装方式适用于简单不需要太多的人工干预,大多数插件都在deb中涵盖了.具体的步骤如下: 1.编辑 /etc/apt/source.list 文件,在末尾添加Odoo源:http://nightly.odoo.com/ deb http://nightly.odoo.com/8.0/nightly/deb/ ./ 2. sudo apt-get update 更新源列表,此过程中可能碰到key验证失败的问题,可到https://nightly.odoo…
[关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装饰器,关于python装饰器的知识,请自行参考python相关手册. 新API的装饰器主要有以下几种: model,multi,one constrains,depends,onchange,returns 还有一些像 cr,cr_context,cr_uid,cr_uid_context,cr_u…
一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr.self.uid. 二:通过直接设置属性来改变数据库中字段值 我们在查出某模型的记录后,可以通过  record.XX = value  来直接修改记录的字段内容. 同样,在重写模型的write方法中,也可以通过 self.XX = value 来指定新增记录中某字段的值. 这里需要注意两点: 1:…
创建完我们的模块,接下来我们就要为我们的模块添加一些对象.今天我们将要创建一个学生对象(tech.student)和一些基本的属性,并将用form和tree视图将其展示出来: 一. 创建tech.student对象: fields,models,api,_是基本上每个模块都需要引入的4个模块: fields是odoo自定义的字段集,在odoo中每个实例对象都要继承models.Model这个类,api是使用新API必须的装饰器类,_则是翻译函数. 关于odoo的字段类型,请参考:http://w…
注:本篇及后续均以8.0为基础. 一. Odoo模块的构成 __init__.py 文件是python包导入所必须的文件,内容可以为空,通常情况下我们用来导入自己写的py文件. __openerp__.py odoo模块的必须文件,里边包含了关于本模块的一些基础信息,如,依赖,视图文件等等. static文件夹 存放模块图标.静态文件的地方,js和qweb视图也放于此文件夹内. test 单元测试的相关文件 views 一些区分的比较清楚的模块会将view文件单独存放起来,并起一个名字,但这并非…
1.model属性 每个对象(即class)一般由字段(变量)和函数组成,每个对象对应着数据库中的一张表,驼峰命名方式 models.Model 基础模块,会根据字段和模型名在后台数据库生成对应得表文件 models.TransientModel 临时模块,用于弹出信息的临时数据,会在后台生成对应得表,但是表的内容根据配置,一定时间后被清除,不会长时间保存,如向导时用 models.AbstractModel 抽象模块,类似于抽象类,常用于继承 2.model字段类型 odoo对象支持的字段类型…
一.odoo中 页面上字段变化引起其他字段范围变化-onchange @api.onchange('company_id') def onchange_parent_id(self): return { 'domain': {'parent_id': [('company_id', '=', self.company_id.id)]}, } 二.odoo中 mail.message 的使用 使用mail.message,分三步走:  #在表的下面 继承这段话 _inherit = ['mail.…
Odoo 点击进入…