构建符合规范的 Odoo 自定义模块
解决 Odoo 开发痛点:通过设定专家规范,让 AI 自动生成标准的 __manifest__.py 配置、模型文件及视图 XML,并指导你使用正确的继承模式和命名空间,避免直接修改核心文件。
为什么需要这个技能
Odoo 的模块开发有一套严格的约定。无论是新建业务模块,还是为 sale.order 等核心模型添加字段,初学者很容易写出语法错误、忽略权限配置或命名不规范。
本技能让 AI 扮演资深 Odoo 开发者角色,自动规划文件夹结构,确保模型命名包含命名空间(如 hospital.patient),正确设置版本号,并指导使用 mail.thread 继承来自动获取聊天和日志功能,从源头避免常见陷阱。
适用场景
- 从零开始开发一个全新的业务模块(如医院管理系统)。
- 需要为现有模型添加字段或重写方法,但不确定如何安全继承。
- 解决模块安装报错、权限不足或访问错误等问题。
- 检查现有代码是否符合 Odoo 社区版 (CE) 或企业版 (EE) 的最佳实践。
核心工作流
- 激活技能并定义需求:提及
@odoo-module-developer并描述模块功能。 - 生成骨架结构:AI 输出包含
__manifest__.py、models/、views/及security/目录的标准结构。 - 编写核心代码:生成符合规范的模型代码,包含正确的
_name、_inherit及字段定义。 - 配置权限与依赖:自动列出依赖包 (
depends) 并生成ir.model.access.csv确保基础权限。
代码示例
以下是一个名为 hospital_management 的模块骨架示例,展示了如何创建患者模型:
生成的文件夹结构:
hospital_management/
├── __manifest__.py
├── __init__.py
├── models/
│ ├── __init__.py
│ └── hospital_patient.py
├── views/
│ └── hospital_patient_views.xml
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
└── data/
__manifest__.py 配置:
{
'name': 'Hospital Management',
'version': '17.0.1.0.0',
'category': 'Healthcare',
'depends': ['base', 'mail'],
'data': [
'security/ir.model.access.csv',
'views/hospital_patient_views.xml',
],
'installable': True,
'license': 'LGPL-3',
}
models/hospital_patient.py 模型代码:
from odoo import models, fields, api
class HospitalPatient(models.Model):
_name = 'hospital.patient'
_description = 'Hospital Patient'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Patient Name', required=True, tracking=True)
birth_date = fields.Date(string='Birth Date')
doctor_id = fields.Many2one('res.users', string='Assigned Doctor')
state = fields.Selection([
('draft', 'New'),
('confirmed', 'Confirmed'),
('done', 'Done'),
], default='draft', tracking=True)
最佳实践提示
- ✅ 务必在
_name前加上命名空间(如hospital.patient)。 - ✅ 使用
_inherit = ['mail.thread']自动启用 chatter。 - ✅ 版本号格式必须为
{odoo_version}.{major}.{minor}.{patch}。 - ✅ 在
__manifest__.py中设置author以便在应用中识别。 - ❌ 严禁直接修改 Odoo 核心文件,始终使用继承。
- ❌ 忘记更新
ir.model.access.csv会导致权限错误。 - ❌ 文件夹命名严禁使用空格或大写字母,必须使用 snake_case。
下载和安装
下载 odoo-module-developer 中文版 Skill ZIP
你可能还需要
暂无推荐