在了解 Odoo 的 MVC 架構後,今天要進行實戰,帶你建立一個最簡單的 Odoo 模組。我們會從 模組結構 開始,逐步新增 Model、View,最後在介面中看到我們的第一個「Hello Odoo」模組。
在 Odoo 的 addons
資料夾下建立新目錄:
cd addons
mkdir hello_odoo
cd hello_odoo
模組的基本結構如下:
hello_odoo/
│── __init__.py
│── __manifest__.py
│── models/
│ └── __init__.py
│ └── hello.py
│── views/
└── hello_view.xml
每個模組都需要一個 __manifest__.py
來描述模組資訊:
{
'name': 'Hello Odoo',
'version': '1.0',
'category': 'Tutorial',
'summary': 'My first Odoo module',
'author': 'Your Name',
'depends': ['base'],
'data': [
'views/hello_view.xml',
],
'installable': True,
'application': True,
}
在 models/hello.py
中定義一個簡單的資料表:
from odoo import models, fields
class HelloOdoo(models.Model):
_name = 'hello.odoo'
_description = 'Hello Odoo Model'
name = fields.Char('Message', required=True, default='Hello Odoo!')
在 views/hello_view.xml
中定義一個表格與表單視圖:
<odoo>
<record id="view_hello_tree" model="ir.ui.view">
<field name="name">hello.odoo.tree</field>
<field name="model">hello.odoo</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
<record id="view_hello_form" model="ir.ui.view">
<field name="name">hello.odoo.form</field>
<field name="model">hello.odoo</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name"/>
</group>
</sheet>
</form>
</field>
</record>
<menuitem id="menu_hello_root" name="Hello Odoo"/>
<menuitem id="menu_hello" name="Messages" parent="menu_hello_root"/>
<act_window id="action_hello"
name="Hello Odoo"
res_model="hello.odoo"
view_mode="tree,form"
menu_id="menu_hello"/>
</odoo>
回到 Odoo 主目錄,重啟伺服器:
./odoo-bin -c odoo.conf -d mydb -u hello_odoo
進入 http://localhost:8069,在 應用程式 (Apps) 中安裝 Hello Odoo
模組。
成功後,你會在主選單看到一個新選項,點擊即可管理你的第一個「Hello Odoo」紀錄。
今天我們完成了第一個模組的開發流程:
__manifest__.py
雖然功能很簡單,但這正是進入 Odoo 開發的第一步。接下來的篇章,我將帶你深入 Odoo ORM 基礎(Models 與 Fields),進一步理解資料模型的威力。