Odoo Development Guide
Odoo Overview → Development
Module structure
my_module/
├── __manifest__.py
├── models/
│ ├── __init__.py
│ └── my_model.py
├── views/
│ └── my_view.xml
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
├── data/
│ └── demo.xml
└── static/
└── src/
├── xml/
├── js/
└── scss/
manifest.py template
{
'name': 'My Module',
'version': '19.0.1.0.0',
'category': 'Sales',
'summary': 'Short description',
'description': '''Long description''',
'depends': ['base', 'sale'],
'data': [
'security/ir.model.access.csv',
'views/my_view.xml',
],
'installable': True,
'application': False,
}Odoo 19 pitfalls
sale.group_sale_manager→sales_teamtrong v19mrp.productionkhông cósale_line_id→ dùngorigin- BOM form view:
mrp.mrp_bom_line_view_form - Many2one column: dùng
field_nameKHÔNGfield_name_id models/trướcviews/trongdata[]- Dùng
@api.constrainsthay_sql_constraints ir.model.access.csvđặt SAUviews/trongdata[]- Cần dependency
mailcho chatter
Best practices
- Odoo Python ORM — ORM patterns
- Odoo XML-RPC API — External API
- Performance Tuning — Database optimization