学习笔记,目的是作为自己学习的记录,如有错误,请读者不要骂我
什么是Odoo
Odoo(前OpenERP)是欧洲开发的一款开源ERP软件,ODOO发展的初衷是为了提供SAP、Microsoft Dynamics等商业ERP软件的开源替代产品。它使用Python语言开发,数据库采用开源的Postgresql,系统以GNU GPL开 源协议发布。
安装odoo
安装odoo的方法分为Linux、Mac、Windows下,在官网 https://www.odoo.com/ 中有详细的介绍。
开始创建一个模块
首先包含两个重要的文件,__init__.py和__openerp__.py
记录要点
1
openerp.py 中有字段:
application:True 为真,列出的模块是作为一个应用程序。通常,这是用于中央模块的功能区域。
auto_install:True 为真,它表明这是一种“胶水”模块,这是安装时自动安装所有的依赖关系。
├── __init__.py
├── __openerp__.py
├── controllers
│ └── __init__.py
├── data
├── i18n
├── models
│ └──__init__.py
├── security
├── static
│ └── description
└── views
data:包含其他数据文件与模块初始数据
demo:包含数据文件和演示数据,用于测试,培训或模块的评估
i18n:就是Odoo用作翻译的地方
static:是所有网络资产预计将被放置的地方,如css,js,image文件。
2
在自己定义的model中,可以增加业务逻辑,也可以重写业务逻辑,如create(),write()等
many2many中,在视图展示中,必须咋fields中加上 widget=”many2many_tags”
model中:
_description 人性化的标题
publish_ids=fields.Many2one(
‘res.partner’,string=’Publisher’,
optional:
ondelete=’set null’,
context={},
domain=[],
)
book_ids = fields.One2many(
‘library.book’,‘publisher_id’,
string=’Published Books’)
domain是一个过滤器,可以选择列出我们想要的值。
default属性中:令默认= _compute_default,_compute_default 默认是一个方法定义在模型在字段定义之前。
Selection字段还接受一个函数引用,而不是一个列表,作为其“选择”的属性。
对于Date字段:
fields.Date.from_string(string_value) 表示接受一个字符串输出为日期格式。
fields.Date.to_string(date_value) 表示接受一个日期输出为一个字符串。
fields.Date.today() 表示显示目前的时间。
fields.Date.context_today(record) 根据时区记录的上下文,字符串返回当前时间的日期。
对于Datetime字段:
fields.Datetime.from_string(string_value) 表示接受一个字符串输出为日期时间格式
f fields.Datetime.to_string(datetime_value) 表示接受一个日期时间输出为一个字符串
f fields.Datetime.now() 输出目前的时间。
Many2one字段:
ondelete属性:决定了当记录被删除后会发生什么。默认值为’set null’,为字段设置了一个空值。也可以设置’restrict’,保证字段不会被删除,或者是’cascade’,导致相关数据均被删除。
One2many 是many2one的反向关系,
包含三个字段:1,相关联的模型名称。2,该模型中Many2one中的字段名称。3,在用户交互方面限制显示记录的个数。