Odoo10实战一:模块创建

news/2024/7/6 1:20:31

Odoo10实战一:模块创建

一:配置准备

我们在odoo10源码的debian目录下找到odoo.conf文件,这就是odoo10的配置文件。我们可以拷贝它到项目根目录下进行修改,然后在pycharm中指定项目的启动配置为根目录下的odoo.conf。也可以直接修改debian目录下的odoo.conf,指定项目启动目录为这个conf文件的所在路径(不过不建议这样做,因为会覆盖掉默认配置,不方便出错后还原)

我们在odoo.conf中,修改Postgresql的主机地址、账户、密码等,并配置模块的存放路径,一般为  XXXX\odoo\addons。

实际开发时,为了避免与odoo自带模块所混淆,我们一般把自己的模块放到其他文件夹去。

所以,在addons_path后面加上我们单独存放模块的文件夹名:

复制代码
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoo
addons_path =addons,myaddons
复制代码

 

二:新建模块

在myaddons目录下,新建一个文件夹,作为模块所在目录。

在其中,新建

__init__.py与__manifest__.py(odoo8中叫__openerp__.py)两个文件,则把该目录转变成了模块,Odoo依赖这两个文件去识别一个文件夹下是否保存一个模块。

 

三:修改__manifest__.py

该文件里保存了一个dict对象,对象内容是整个模块的描述,用于显示在模块的详情页。

一般信息有:(不需要全写,需要的才写,避免出现空的值造成安装报错(IOERROR:file not found))

复制代码
{
    'name':"模块名称",
    'summary':"模块概述",
    'version':'版本',
    'category':'模块所属分类',
    'sequence':模块在应用菜单中的序号位置,
    'author':'开发者名字',
    'website':'网站',
    'depends':['依赖模块(需要用到其他模块的内容,则填写依赖模块的名字)在安装本模块时,会先安装依赖模块'],
    'data':['数据文件.xml'],
    'qweb':['视图文件.xml'],
    'demo':['默认添加的示范数据.xml'],
    'test':['测试数据.xml'],
    'installable':True,
    'application':True,
    'auto_install':False,
    'description':'''模块详细描述''',
}
复制代码

 

四:为模块添加图片

新建static目录,创建descrpition文件夹。

在其中,放入一个名为"icon"的图片文件,切记:odoo依靠文件名来识别,所以必须是icon命名。

之后,就可以在应用列表看到自己的模块了。

 

五:__init__.py的使用

该文件用于导入模块中需要用到的python类文件。

为了方便管理,我们一般这样做:

新建一个models文件夹,在其中存放python的实体类。models目录下新建一个__init__.py,在其中import 该目录下所有实体类。

然后在模块的__init__.py中,Import models 即可。

 

到我的github上查看更多项目:https://github.com/ygj0930

http://www.niftyadmin.cn/n/681374.html

相关文章

软件工程--软件测试(白盒)

what 白盒测试是结构测试,逻辑驱动测试,我们都知道黑盒指不可见,那么在测试中与之相对应的白盒呢这是可视的,可以清楚内部是如何运作的,这也就达成了对程序内部逻辑结构、对逻辑路径测试。这也就提到了白盒测试法是一…

FATAL: no pg_hba.conf entry for host ::1 odoo10连接postgre navicate连接问题

FATAL: no pg_hba.conf entry for host "::1" 2016-03-09 15:20:42 作者:MangoCool 来源:MangoCool 之前集群安装的开源版的Greenplum,在安装gpperfmon-cc-web时候,遇到的问题始终解决不了,于是就暂时…

PAT A1055

水题&#xff0c;还是字典排序&#xff0c;没神马好说的&#xff1b; #include<iostream> #include<stdlib.h> #include<stdio.h> #include<string> #include<cstring> #include<vector> #include<algorithm> using namespace std; …

《JavaScript高级程序设计》笔记:新兴的API

requestAnimationFrame() 大多数电脑显示器的刷新频率60HZ&#xff0c;大概相当于每秒钟重绘60次。因此&#xff0c;最平滑动画的最佳循环间隔是1000ms/60&#xff0c;约等于17ms。 mozRequestAnimationFrame() mozRequestAnimationFrame()方法接收一个参数&#xff0c;即在重绘…

Axure 引入元件库

AXURE 里的元件不够使用&#xff0c;想引入一些个性化或符合自己需求的元件怎么办呢&#xff1f;我们可以通过自己建立元件或者引入下载的元件库&#xff0c;那么怎么引入呢&#xff1f;引入的方法有两种&#xff0c;只是形式不一样&#xff0c;但是根本性的原理是一样的。我为…

psql: FATAL: role “postgres” does not exist 解决方案 postgre 无法连接的问题

psql: FATAL: role “postgres” does not exist 解决方案 当时想做的事情&#xff0c;是运行一个创建数据库的脚本。找到的解决方案差不多和下面这个链接相同。 http://stackoverflow.com/questions/15301826/psql-fatal-role-postgres-does-not-exist 实际上做的事情就是logi…

存板子专用

某谷树剖模板 #include<bits/stdc.h> using namespace std; #define ll long long #define ull unsigend long long #define rep(k,i,j) for(int k i;k < j; k) #define FOR(k,i,j) for(int k i;k > j; --k) inline int read(){int x0,f1; char chgetchar();whi…