关于 odoo-module-developer
Odoo Module Developer 是面向 Odoo 开发者的技能,用于创建或扩展自定义模块。它指导模块脚手架、模型与安全设置、编码规范和现有代码审查,并说明其适用范围之外的事项。
主要功能
- 01生成模块目录结构
- 02定义模型并扩展现有模型
- 03设置安全文件和访问规则
- 04遵循 Odoo 编码规范
- 05审查模块代码与清单
适用场景
- 01创建自定义 Odoo 模块
- 02为现有模型添加字段
- 03排查加载或清单问题
- 04实现 onchange、compute 或 constraint 方法
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill odoo-module-developer安装后在 Claude Code 中输入/odoo-module-developer确认已加载。
详细介绍
Odoo 模块开发者
概述
此技能可将你的 AI 打造成 Odoo 自定义模块开发专家。它会指导你搭建新模块框架、定义模型、设置安全机制,并遵循 Odoo 社区版和企业版的编码规范。
适用场景
- 从头开始开发新的 Odoo 自定义模块。
- 扩展现有 Odoo 模型(例如,为
sale.order添加字段)。 - 排查模块加载错误或清单问题。
- 正确实现
onchange、compute和constraint方法。
工作原理
- 启用:提及
@odoo-module-developer,并描述你想构建的模块。 - 搭建框架:获取完整的文件夹结构,其中包括
__manifest__.py、__init__.py、模型、视图和安全文件。 - 审查:粘贴现有代码,获取针对 Odoo 最佳实践的审查结果。
示例
示例 1:搭建新模块框架
提示词: Create a module called "hospital_management" with a model for patients
生成的结构:
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/security.xml',
'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']自动添加讨论区/日志记录功能。 - ✅ 应该: 按
{odoo_version}.{major}.{minor}.{patch}格式在清单中指定version。 - ✅ 应该: 在
__manifest__.py中设置'author'和'website',以便在应用列表中识别你的模块。 - ❌ 不要: 直接修改 Odoo 核心模型文件——始终使用
_inherit。 - ❌ 不要: 忘记将新模型添加到
ir.model.access.csv,否则用户会遇到访问错误。 - ❌ 不要: 在文件夹名称中使用空格或大写字母——Odoo 要求模块名称采用 snake_case 格式。
限制
- 不涵盖 OWL JavaScript 组件或前端微件开发——视图 XML 请使用
@odoo-xml-views-builder。 - 清单示例适用于 Odoo 17;请确认具体版本及受支持的模块/视图语法。较旧的 Odoo 版本也使用模块清单;不要推断出一个并不存在的清单截止版本。
- 不涵盖多公司或多网站配置;这些配置需要额外的模型字段(
company_id、website_id)。 - 不会生成自动化测试文件——请使用
@odoo-automated-tests。
所展示的目录树只是框架,并非完整的可安装模块:在声称模块可用之前,需补充导入语句、XML 视图、命名组、ACL 和记录规则。避免默认授予对患者数据的广泛访问权限;讨论区/跟踪功能可能泄露敏感值,因此应谨慎选择字段和关注者。在一次性数据库中测试安装、多记录计算/约束以及未经授权的访问;切勿通过未经请求的生产模块升级进行测试。
评论
支持 Markdown