Odoo 二次开发教程(二)-模块的基础构建
注:本篇及后续均以8.0为基础。
一、 Odoo模块的构成
__init__.py 文件是python包导入所必须的文件,内容可以为空,通常情况下我们用来导入自己写的py文件。
__openerp__.py odoo模块的必须文件,里边包含了关于本模块的一些基础信息,如,依赖,视图文件等等。
static文件夹 存放模块图标、静态文件的地方,js和qweb视图也放于此文件夹内。
test 单元测试的相关文件
views 一些区分的比较清楚的模块会将view文件单独存放起来,并起一个名字,但这并非必须的。
wizard 和view一样,非必须,只是依照惯例把一些向导文件放于此文件夹内。
二、 第一个模块
我们先来创建一个模块,在你的addons目录下创建一个目录,命名为tech_demo,并创建__init__.py,__openerp__.py和tech_test.py三个文件:
__init__.py 文件只有一行内容,就是引入我们py代码文件 tech_test.py:
__openerp__.py 内容是一个python dictionary 注明了一些包括作者信息等内容:
好了,其实到这里已经是一个完整的模块了,odoo能够识别并且安装它。
三、测试安装卸载模块
重启odoo服务,在设置中找到本地模块,先更新一下模块列表,然后就可以发现我们的新模块了。如果没有发现更新本地列表菜单,请检查你是否开启了技术特性:
更新过后,我们就可以在右上角的模块搜索栏里搜索我们的模块了:
如果没有发现你的模块,请按照以下顺序检查:
1. tech目录是否在odoo的配置文件addons路径中
2. tech_demo文件夹是否存在__init__.py文件
3.__openerp__.py 文件中拼写是否完全正确。
点击安装即可安装模块:
点击卸载即可卸载模块,卸载模块后,所有在本模块内创建的数据都将被丢弃。
这就是一个简单的模块创建过程。
Odoo 二次开发教程(二)-模块的基础构建的更多相关文章
- 最好最实用的PHP二次开发教程
◆二次开发 1.什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核. 2.为什么要二次开发? 随着信息化技术 ...
- MIP开发教程(二) 使用MIP-CLI工具调试MIP网页
初始化 MIP 配置 新建一个 MIP 网页 编写 MIP 网页代码 校验 MIP 网页 调试 MIP 网页 1. 初始化 MIP 配置 首先在html目录下进行初始化 MIP 配置: $ mip i ...
- 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号 ...
- Drupal8开发教程:模块开发——创建新页面
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块 ...
- WeCenter二次开发教程(一):熟悉模板结构
<1>程序文件目录介绍: app – 应用目录 models – 模型目录 plugins – 插件目录 static – 静态文件 system – 系统目录 views – 模板目录 ...
- PHPCMS二次开发教程(转)
转自:http://www.cnblogs.com/semcoding/p/3347600.html PHPCMS V9 结构设计 根目录 |–api 结构文件目录 |–caches 缓存文件目录 ...
- PHPCMS二次开发教程
PHPCMS V9 结构设计 根目录|–api 结构文件目录|–caches 缓存文件目录 |– configs 系统配置文件目录 |– caches_* 系统缓存目录|–phpcms p ...
- PHPCMS 使用图示和PHPCMS二次开发教程(转)
PHPCMS V9 核心文件说明 模块与控制器 模块: phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块.即url访问中的m. 访问content模块示 ...
- 最好最实用的二次开发教程 cms
◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断 ...
随机推荐
- JNDI
这两天研究了一下 context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别 网上关于这两个的 ...
- $compile
<html ng-app="compile"> <head> <script src="http://apps.bdimg.com/libs ...
- 第二天--html
<!DOCTYPE html><!--设置文档类型为标准的html5模型--><html> <head> <meta char ...
- 循环获取DataTable
DataTable ddtt = tq.Table("); string strName = ""; //DataTable ddtt = dataSet.Tables[ ...
- 怎么写makefile?(转)
跟我一起写 Makefile 陈皓 第一章.概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 pr ...
- css实现隐藏滚动条
demo1: html <div class="outer-container"> <div class="inner-container"& ...
- Mahout之数据承载
转载自:https://www.douban.com/note/204399134/ 推荐数据的处理是大规模的,在集群环境下一次要处理的数据可能是数GB,所以Mahout针对推荐数据进行了优化. Pr ...
- PHP中的一些常用正则表达式
匹配表单验证 验证账号,字母开头,允许 5-16 字节,允许字母数字下划线:^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 验证账号,不能为空,不能有空格,只能是英文字母:^\S+[a-z ...
- Redis 外部访问设置
1.错误原因 Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP(192.168.1 ...
- 【Java EE 学习 78 上】【数据采集系统第十天】【Service使用Spring缓存模块】
一.需求分析 调查问卷中或许每一个单击动作都会引发大量的数据库访问,特别是在参与调查的过程中,只是单击“上一页”或者“下一页”的按钮就会引发大量的查询,必须对这种问题进行优化才行.使用缓存策略进行查询 ...