support Click to see our new support page.
support For sales enquiry!

MVC Architecture of Odoo

mvc architecture of odoo

Muhammed NizarudheenSept. 10, 2018

What is MVC ?

MVC stands for model, view and the controller. It is commonly used for developing the user interface. And is, therefore a popular choice for designing web apps. MVC pattern is divided into three parts. Model, view, and controller or MVC in Odoo works in a three-tiers architecture.

This represents the database and logic of the application. However, model is responsible for maintaining the data. Model objects retrieve and store model state in a database.


The view represents the user interface of the application. Through the view, the user is viewing the database. The view facilitates user to retrieve information and apply changes to the database.

The controller handles both the view and the model. It receives the instruction from the view and the controller sends the appropriate instructions to the model.controllers are software codes that control both  view and model

MVC Architecture of Odoo

How MVC architecture works in odoo ?
Odoo has a multi tenant, three-tiers architecture. It follows MVC architectural pattern. PostgreSQL database for data storage, that is the model of the architecture. The user interface is defined in XML. In addition, the web layer offers an interface to communicate with standard browsers. Controller part  done by using modules. Odoo contains a large collection of modules. These modules can used according to the user needs. And the modules are written in python.

  • model : The PostgreSQL tables.
  • view   : views defined in XML files in Odoo.
  • controller : The objects of Odoo.
The Odoo server

The Odoo server provides an application server on which specific applications can  built. It provides a range of features to write those applications. The Odoo ORM provides functionalities and an interface on top of the PostgreSQL server. The Odoo server also features a specific layer designed to communicate with the web browser-based client. It uses standard browsers as the interface for the web clients.

The large number of frameworks from the developer side, use based on the requirements. The developers can download and use these frameworks.

Modules are the codes written in python. A module does the function of the controller. Usage of any modules are for implementing any business needs. The server used only to run this module. Any official Odoo release has nearly 300 modules and also there are hundreds of modules in the community. For example  Account, CRM, HR, Marketing, MRP, Sale, etc.

The client is view side of this architecture. The Views  defined in XML files. It is conceptually very simple. It requests the server to display some results. The controller fetches the result from the database and displays to the client. The client also issues the request for updating the database.

In short this is the MVC architecture in odoo.

Odoo ERP services

LinkedIn LinkedIn