Skip to Content

Define a Module

Define a Module

A minimal Odoo module includes a manifest, Python package, and security access rules.

Directory layout


my_module/
  __init__.py
  __manifest__.py
  models/
  views/
  security/ir.model.access.csv

Manifest example

Declare dependencies on `base` and any feature modules you extend. List XML/CSV data files in load order.

Models

Create Python files under `models/` and import them from `models/__init__.py`. Each model class sets `_name` and optional `_description`.

Menus and actions

Define `ir.actions.act_window` records and menuitems in XML. Keep product menus separate from Configuration → Documentation when using Gen-4 shells.

Source: https://www.odoo.com/documentation/19.0/developer/tutorials/define_module.html