Odoo自建应用初步总结(一)
学习了《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学习,相关的体会将持续更新。)
Odoo自建应用初步总结(一)的更多相关文章
- Scrum 冲刺第一天
一.团队信息 1.团队名称 挑战极限队 2.团队成员 张博愉(3118005074) 张润柏(3118005075) 郑堉涵(3118005077) 周伟建(3118005079) 林梓琦(31180 ...
- Azure底层架构的初步分析
之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...
- [web建站] 优课急送《零基础快速学习建站》视频+课件【价值399元】
[课程介绍]你想快速建一个网站出来吗?你想从什么都不懂到一两天出一个漂漂亮亮的站吗?你想完成领导交给你的任务找人建站吗?你想自己建站来创业吗?你想学会建站之后,利用给别人建站来赚钱吗?你想建一个跟某个 ...
- 搜索引擎系列 ---lucene简介 创建索引和搜索初步
一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 :Lucene得名于Doug妻子 ...
- Odoo 路线规则实现机制浅析
事情是这个样子的:项目在实施过程中,碰到A仓库向B仓库供货的情况,心想这还不简单,老老实实地建多个仓库并将B仓库的供货仓库选为A仓库,再设置好产品的再订购规则,万事大吉了.然而,事情并非想象的那么简单 ...
- 配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境
安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...
- Sprint会议-初步组织划分
主题:Spring冲刺计划会议,组员已认领方式领取任务,对个人任务进行详细划分. 日期:2015.4.26 地点:学一食堂二楼 与会人员:王雪青.陆宇.徐擎天.张文冬.赵建松 索引表 因早期任务的认领 ...
- 配置Windows 2008 R2 64位 Odoo 8.0/9.0 源码开发调试环境
安装过程中,需要互联网连接下载python依赖库: 1.安装: Windows Server 2008 R2 x64标准版 2.安装: Python 2.7.10 amd64 到C:\Python27 ...
- SmartGit初步使用
在Git如日中天的今天,我也不免俗的想用Git将业余时间写的代码管理一下. 什么是Git这里不多说,具体见廖雪峰的Git教程,ProGit等详细教程. 我们这里直接上手. 一.下载Git客户端 1.G ...
随机推荐
- vmstate 命令详解2022
vmstat 是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过 vmstat 来发现系统中的瓶颈呢? 1. 使用vmstat 使用前我们先看下命令介绍及参数定义 Usag ...
- 10道不得不会的JavaEE面试题
10道不得不会的 JavaEE 面试题 我是 JavaPub,专注于面试.副业,技术人的成长记录. 以下是 JavaEE 面试题,相信大家都会有种及眼熟又陌生的感觉.看过可能在短暂的面试后又马上忘记了 ...
- 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现
欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ...
- 隐私计算FATE-多分类神经网络算法测试
一.说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测. 二分类算法:是指待预测的 label 标签的取值只有两种:直白来 ...
- spring boot 打包为war包方法
刚刚接触spring boot,其快速开发的特性吸引我去研究一下.于是我写了个demo,用spring boot内置的tomcat运行的很好,但是我需要把它部署到外部的tomcat中,于是从网上查找资 ...
- 浅学hello world
Hello world 1.随便新建一个文件夹,存放代码 2.新建一个java文件 .后缀名为.java .Hello.java .[注意点]系统没显示后缀名的可以自己手动打开 3.编写代码 publ ...
- 快速入门python看过的一些资料
我快速入门python看过的一些资料 B站的视频 10天自学Python,轻松掌握Python基础[千锋] 廖雪峰 - Python教程 https://www.liaoxuefeng.com/wik ...
- Acwing八数码
此题用\(bfs\) 首先我们可以定义两个重要的数组 \(unordered\_map<string,int> d\)表示\(string\)距离\(start\)的交换次数 \(queu ...
- 如何创建一个带诊断工具的.NET镜像
现阶段的问题 现在是云原生和容器化时代,.NET Core对于云原生来说有非常好的兼容和亲和性,dotnet社区以及微软为.NET Core提供了非常方便的镜像容器化方案.所以现在大多数的dotnet ...
- 常用的函数式接口Function接口和常用的函数式接口Function接口默认方法andThen
常用的函数式接口Function接口 package com.yang.Test.FunctionStudy; import java.util.function.Function; /** * ja ...