本文作者:zhujue

Odoo16 开发教程

zhujue 2023-10-20 13:34:51 31 抢沙发
Odoo16 开发教程摘要: clone、depth命令的插入可手动编辑代码关闭镜像地址请不要登陆自己的账户,造成损失本人概不负责克隆地址1...

clone、depth命令的插入可手动编辑代码关闭镜像地址请不要登陆自己的账户,造成损失本人概不负责克隆地址1复制克隆地址2复制克隆地址3复制克隆地址1复制克隆地址2复制克隆地址3复制

aaron-zzh/odoo-demo

 main 
 1 分支 0 标签转到文件
添加文件
代码
下载

Odoo16 开发教程 第1张odoo-demo-main.zip


Latest commit

View all commits by aaron-zzh Odoo16 开发教程 第2张aaron-zzh fix: 权限3fff7eb2022年11月6日

Git stats

文件

请键入文件名Latest commit messageCommit timedemofix: 权限最近 1 年demo_accountinit最近 1 年.gitignoreinit最近 1 年README.mdinit最近 1 年

README.md

Odoo16 开发教程

Odoo 号称全球第一的开源ERP平台,除了提供一站式的企业应用开发解决方案,作为一个网站设计器或低代码平台也是挺强大的。

最近工作调整,安装Odoo16试用,了解一下新版变化,把官方的教程(房地产模块)自己实现了一下(教程比以前详细了挺多),简单记录一下,源码在文末。

版本变化

个人感觉比较大的变化:Form视图不需要切换到编辑模式,自动检测变化,自动保存 + 手动保存 + 手动撤销 ![在这里插入图片描述](https://img-blog.csdnimg.cn/14a5742a30d94d6881c853d8cfc103bd.png)

模块开发步骤

  1. 添加模块元数据 __manifest__.py,自动生成:odoo-bin scaffold

  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中 是一种菜单记录的简写方式,支持嵌套。

  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


文章版权及转载声明

作者:zhujue本文地址:http://183.162.193.250:5900/post/309.html发布于 2023-10-20 13:34:51
文章转载或复制请以超链接形式并注明出处天云博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,31人围观)参与讨论

还没有评论,来说两句吧...