1. 程式人生 > >odoo 9.0建立自定義模組

odoo 9.0建立自定義模組

建立簡單自定義模組

參考:http://blog.sunansheng.com/python/odoo/odoo.html#sec-5-3-3

odoo有很多現有的模組(應用),也能夠新增自定義模組.

基本結構

使用命令快速生成一個模組的基本

./odoo.py scaffold  firstmodule myaddons

其中myaddons為放置模組的資料夾,firstmodule為你所建立的自定義模組.myaddons與oddo配置檔案中的--addons-path所對應,所沒有則需要新增,或啟動時
./odoo.py --addons-path=addons,myaddons

通過之前的命令會生成一系列的檔案,結構如下:
myaddons/firstmodule/                              #myaddons和firstmodule都與之前所輸入的命令對應
|-- __init__.py
|-- __openerp__.py                                         #odoo模組必要檔案
|-- controllers/                                                #http路徑控制
|    |-- __init__.py
|    `-- controllers.py
|-- data/                                                            #資料檔案
|    |-- <main_model>_data.xml
|    `-- <inherited_main_model>_demo.xml
|-- models/                                                      #model定義
|    |-- __init__.py
|    |-- <main_model>.py
|    `-- <inherited_main_model>.py
|-- security/
|    |-- ir.model.access.csv
|    `-- <main_model>_security.xml
|-- static/               
|    |-- img/
|    |-- lib/
|    `-- src/
|        |-- js/
|        |-- css/
|        |-- less/
|        `-- xml/
`-- views/                                                           #檢視和模板
    |-- <main_model>_templates.xml
    |-- <main_model>_views.xml

hello world

controllers資料夾新建一個__init__.py和controllers.py,在controllers.py中新增以下內容:

# -*- coding: utf-8 -*-
from openerp import http

class Firstmodule(http.Controller):
     @http.route('/firstmodule/firstmodule/', auth='public')
     def index(self, **kw):
 	return 'hello world'
並在__init__.py中新增:
# -*- coding: utf-8 -*-

from . import controllers

安裝並更新自定義模組

自定義模組新增完成後,啟動odoo,載入新建的myoaddons:

./odoo.py --addons-path=addons,myaddons

進入odoo,並激活開發者模式,右上角帳號,點選"關於"


進入"應用"介面,更新應用列表,並搜尋你所建立的自定義模組,當前是firstmodule,進行安裝:

安裝完成後,瀏覽器中輸入http://127.0.0.1:8069/firstmodule/firstmodule/,即可看到返回的hello world,該地址對應controller中的

@http.route('/firstmodule/firstmodule/', auth='public')

簡單整體演示模組

controllers

views

models

data

__openerp__.py