# Odoo16 开发教程
Odoo 号称全球第一的开源ERP平台,除了提供一站式的企业应用开发解决方案,作为一个网站设计器或低代码平台也是挺强大的。
最近工作调整,安装Odoo16试用,了解一下新版变化,把官方的教程(房地产模块)自己实现了一下(教程比以前详细了挺多),简单记录一下,源码在文末。
## 版本变化
个人感觉比较大的变化:Form视图不需要切换到编辑模式,自动检测变化,自动保存 + 手动保存 + 手动撤销

## 模块开发步骤
1. 添加模块元数据 `__manifest__.py`,自动生成:odoo-bin scaffold <module name> <where to put it>
2. ORM:以 pyhon 包的方式添加模型model,之后可创建记录record,self 是 record 集合,模块(module)也是 python 包。
3. 通过 xml 设置模型权限。Odoo是一个高度数据驱动的系统。仅当安装或更新模块时从csv或xml文件加载数据。访问权限被定义为模型 ir.model.access 的记录。
4. 菜单及动作:通过 xml 定义菜单弹窗动作,是 ir.actions.act_window 模型的记录,指定要展示的模型及视图。复杂结构的数据可以使用 xml 表示。
5. 菜单及动作:定义菜单、模块图标,菜单是模型 ir.ui.menu 的记录,可定义多层级菜单。在xml中 <menuitem> 是一种菜单记录的简写方式,支持嵌套。
6. 字段常用属性设置(必填、默认值、只读、不可复制),
7. 添加系统保留字段(用于归档的 active )
8. 添加自定义列表、表单及搜索视图。
9. 模型间关系:多对一(m2o)关联表字段 type_id
10. 模型间关系:多对多 (m2m)关联表 tag_ids
11. 模型间关系:添加反向关联字段 报价单,one2many
12. 添加计算字段 compute onchange,根据其他字段值自动计算的字段
13. 添加按钮及动作
14. 添加字段校验,通过 sql 或 python 方法校验
15. 根据房产类型分组查看房屋列表
16. 设置排序、字段 widget
17. 动态设置按钮及字段,隐藏、只读
18. 设置列表行颜色
19. 设置列表默认过滤条件
20. 表单添加状态按钮,展示统计信息、点击调整展示关联数据
21. 继承复用扩展:继承覆写父类方法
22. 继承复用扩展:扩展 res.users 模型字段,并修改视图
23. 继承复用扩展:通过 Link Module 方式与内置模块交互,需安装 sale 模块
24. 看板视图及分组展示
25. 添加用户组及记录规则,按角色控制权限
26. 绕过用户权限的方法:
1. sudo(),将在“sudo模式”中创建一个新的记录集,这将忽略所有的访问权限和记录规则。
2. SQL查询,将绕过访问权限和记录规则,绕过ORM本身的副作用。
27. 支持多公司,仅能查看自己公司的数据
28. 通过 xml 添加演示数据
29. 报表打印
30. 模型添加消息通讯
31. 性能最佳实践
- 不要在遍历记录集时调用运行SQL查询的方法,因为它会对记录集的每个记录都这样做。
- 将search_count替换为read_group,以便对整批记录执行一个SQL查询。
- 不要循环创建记录,先计算记录值数组,再调用create方法。有助于框架优化字段计算。
- 通过正确准备输入数据来降低算法的复杂性。
- 最好使用集合操作,如将列表转换为集合。
- 添加字段数据库索引可以帮助加快搜索操作。
## 源码
[https://github.com/aaron-zzh/odoo-demo](https://github.com/aaron-zzh/odoo-demo)


AaronZZH
- 粉丝: 4641
最新资源
- 四川农业大学2021年9月《计算机建筑辅助设计》作业考核试题及答案参考3.docx
- 人工智能会叛逃?从下棋开始谈起........docx
- 中国象棋源代码JAVA程序.doc
- 换了电脑不熟悉软件发表感言.docx
- 财务会计制度及核算软件备案报告书(2).doc
- 大数据的中心机房建设方案设计.doc
- 网页制作初学者-学用HTML的超链接A标记.doc
- 浅析网络环境下档案信息化及档案信息化建设.docx
- 电力调度自动化系统中数据挖掘技术运用分析.docx
- 下午2576月10日周五计算机应用基础专升本作业多选题5分).docx
- 基于PLC的自动快速门控制系统设计.docx
- 东北农业大学2021年9月《面向对象程序设计》作业考核试题及答案参考1.docx
- 互联网+背景下高职院校学生党建工作的探索.docx
- 互联网发展与保健品销售最终(1).doc
- 第六章用户接口实验 ppt.pptx
- 用asp与php实现百度ping服务的代码(1).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


