概述
三层体系结构,表示层是HTML5、JavaScript和CSS的组合,逻辑层专门用Python编写,而数据层只支持PostgreSQL作为RDBMS。
服务器和客户端扩展都打包为模块,可选地加载到数据库中。模块是针对单一目的的函数和数据的集合。Odoo中的一切都以模块开始和结束
开启调试模式
http://localhost:8069/web?debug=1
Odoo模块构成
一个模块必须包含两个文件,manifest.py和 init.py
- _manifest .py文件必须描述我们的模块,不能为空。它唯一需要的字段是名称,但它通常包含更多的信息。相当于settings文件,其实就是每个模块对应的配置文件
- init.py文件现在可以保持为空。
下面文件视情况增减
- models:具体的模型
- 定义了类与方法,生成了数据库及其所需的字段
- 所有的数据orm都放在里面
- security:安全文件夹
- 管理odoo模型的增删改查权限(读、写、创建、取消链接)
- views:视图文件夹,用于前端的显示
- controllers文件夹
- 里面可以存放一下自己写的路由方法
- 可以在里面写一些灵活的接口方法或者视图接口
- demo文件夹
- 里面可以写一些测试数据,在安装模块的时候回自动写入demo数据
- views文件夹
- 将template模板和view的视图都放在里面,以后会详细讲解view视图的用法
- tree视图、from视图、search视图
完整的结构如下:
Odoo的增删改查
1)create函数:(增)
create(vals_list)
如:XXXX.create({‘name’: “New Name”})
2)unlink函数:(删)
unlink()
3)write函数:(改)
create(vals_list)
如:XXXX.create({‘name’: “New Name”})
4)read,search,和search_read函数函数:(查)
查询模型内的全部数据
course_list = self.env[‘student_achieve_manage_sys.course’].search([])
查询指定条件数据
XXX.search([(‘is_company’, ‘=’, True), (‘customer’, ‘=’, True)])
查询前2条数据
search([
(‘name’, ‘=’, attachment_name),
(‘res_model’, ‘=’, self.model),
(‘res_id’, ‘=’, record.id)
], limit=2)
Read函数查询一条数据
search_read函数,用法如下
search_read(domain,fileds) # domain 查询条件, fields 显示的字段name