Odoo 16 Development Book

Module Structure

The most important thing while developing a module is its structure. When we create a module, it has its own structure, and we should always make sure that we follow the module structure. A module consists of different components such as models, views, security, etc.

Mainly an Odoo module is declared by its manifest.

Each module requires a python file and a manifest file that are __init__.py file and __manifest__.py file. The basic structure of the module is given below.

odoo Development

A module is also a Python package that consists of __init__ .py file that includes import instructions for the module's numerous Python files. For example, if the module has a single pythonfile.py file, then its __init__.py file contains:

from . import pythonfile


We can describe the name of the module, author name, version, description, company, category, etc., in the manifest.

Name - Name of the module.

Description - Brief description of the module.

Version- Here, we can specify the module version.

License - Specify the distribution license

Author - Author name of the module.

Website - Module author’s website URL.

Category - Specify the category name.

Depends - Here, we can specify the list of modules that must be installed before installing the module.

Data - With the installation of the module, these files are installed or updated.

Demo - In active demonstration mode, the data files that are installed or updated.

The module has directories. It includes models, views, demos, static, security, data, wizards, etc.


The model file consists of __init__.py file, which imports all python files on that model's directory.


Views file consists of XML files for the user interface, with the actions and views like forms, lists, etc. The format of creating an XML file is “demo.xml”


Data file contains all data files along with the module's initial data.


It consists of data files with demonstration data, which is very useful for testing, training, or module evaluation.


The i18n file contains the translation files, which include .po and .pot files. These files are not required to mention on the manifest file.


It consists of XML files that generate access groups and record rules for security and data files that define access control lists, such as the ir.model.access.csv file.


The Controllers folder consists of code files that provide that functionality for website controllers.


All assets are expanded inside the static directory. Files in this directory are public and accessible without a username and password. This directory contains JavaScript, style sheets, images, and other items that aren't listed in the module manifest but need to be referenced in the web template.


Wizard contains all files related to wizards. Wizards are used to holding intermediate data in Odoo.


Odoo helps us to generate pdf documents such as invoices and sales orders. The report directory consists of all the files related to reports.



Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message