学习了《Odoo快速入门与实践 Python开发ERP指南》(刘金亮 2019年5月第1版 机械工业出版社)第6章自建应用入门后进行一下总结。

因为本书作者使用Odoo11,而目前最新版本为Odoo14,因此存在一些版本上的差异。

一、首先是界面差异

Odoo11的菜单在左侧导航区显示,在Odoo14中顶级菜单(parent为空)在导航区显示,而二级及以下菜单在右侧上部显示。

图1 Odoo11界面

图2 Odoo14界面

在Odoo14中,在打开进入具体应用后,左侧导航栏即“消失”了。从图2可以看到这个效果。如果要进入其他应用,可点击界面左上角的图标。

二、技术(代码)上的差异

在第6章中,目前能看到的是方法装饰器@multi已经在Odoo13以后废弃了,所以在相应处,我使用了@depend(value)这个装饰器。

Odoo14一定还有与Odoo11在编码方面的差异,因目前章节还未涉及,故未做深入了解。这个最好能查阅Odoo官网的文档。

三、关于“关注者管理”功能的一些想法

在书中介绍了新增的“关注者管理”功能的视图的创建,是继承了base.view_partner_form,并在该视图的<field name=”mobile”>节点后添加了一个Bug列表。我最初按照书中介绍的步骤进行操作,但并未出现书中展示的如图3所示的界面。在我的应用界面中,首先是“bug”为个标签未出现,其次是bug列表占用了mobile的输入框的位置。还不明白具体是什么原因。但更重要的是,当我打开“联系人”这个应用,并进入一个具体的记录后,这个bug列表完全破坏了原本的布局:直接“冲出”了视图数据的显示区域。

图3 添加bug列表后的显示效果

后来,发现该视图下部有一个“Tabs”标签组,于是尝试新增一个Tab,并将bug列表放在其中。最终结果如图4。

相应的代码如下:

  1     <record model="ir.ui.view" id="bug-manage.follower_form">
2 <field name="name">关注者</field>
3 <field name="model">res.partner</field>
4 <field name="inherit_id" ref="base.view_partner_form" />
5 <field name="arch" type="xml">
6 <!-- 在"internal_notes"后面添加一个Tab,在其中布置关注的bug -->
7 <!-- 关注的bug布置在某个Field后,可能会影响整个页面的布局。上次还没有方法整理页面布局 -->
8 <page name="internal_notes" position="after">
9 <page name="关注的Bugs" string="关注的Bugs">
10 <field name="bug_ids" />
11 </page>
12 </page>
13 </field>
14 </record>

这样修改后,在“联系人”应用中的效果也很好。

四、关于权限管理中model_id的命名

关于权限管理的csv文件中的model_id的指定,其实书中已经交待的很清晰了,这里是为了再强调一下:

model_id的命名规则比较固定,比如我们的bug管理模型的_name是bm.bug,那么model_id就是model_bm_bug。

总结一下就是:model_id命名格式:model_<模型类中_name属性设置的值>。特别要注意的是:要将_name值中的“.”替换为“_”(下划线)。

(关于Odoo学习,相关的体会将持续更新。)

最新文章

  1. Android事件分发机制浅谈(三)--源码分析(View篇)
  2. windows 2003自动登录的具体步骤
  3. 京东2017校园招聘笔试题 【第K个幸运数】
  4. 移动开发发展方向-----Hybird混合开发3大方案
  5. URAL 1031. Railway Tickets(spfa)
  6. VirtualBox 下USB 设备加载的步骤及无法加载的解决办法
  7. UIButton 设置为圆形,并且使用图片(UIImage)当做背景
  8. Java笔记(十七)&hellip;&hellip;异常
  9. Chrome调试大全--转载
  10. React使用笔记2-React Components的生命周期
  11. Restful 和 Jersey介绍(Web Service )
  12. Java泛型和通配符那点事
  13. Fescar(Seata)-Springcloud流程分析-1阶段
  14. LeetCode单排日记
  15. [C++]PAT乙级1005. 继续(3n+1)猜想 (25/25)
  16. nginx的权限问题(13: Permission denied)解决办法
  17. Python3基础语法你学会了么
  18. 【转】理解*(void**)
  19. ajax请求超时判断(转载)
  20. java 接口与工厂

热门文章

  1. NC24325 [USACO 2012 Mar S]Flowerpot
  2. Hashtable集合 --练习题_计算一个字符串中每个字符出现次数
  3. Java学习dayo4
  4. redis 集群 slots are covered by nodes.
  5. hive常用函数 wordCount--Hive窗口函数1.1.1 聚合开窗函数聚合开窗函数实战
  6. EfficientFormer:轻量化ViT Backbone
  7. [USACO 2009 Mar S]Look Up_via牛客网
  8. Linux(Centos7) 实例搭建 FTP 服务
  9. websocket、socket、http对比
  10. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)