Book Image

Odoo 15 Development Essentials - Fifth Edition

By : Daniel Reis
4.5 (2)
Book Image

Odoo 15 Development Essentials - Fifth Edition

4.5 (2)
By: Daniel Reis

Overview of this book

Odoo is fast becoming the reference open source platform for business applications thanks to the fact that it provides the infrastructure needed for developers to deliver software solutions for any business process quickly. Odoo's layered module approach makes it particularly effective for combining and extending features. This updated fifth edition is a tutorial-style introduction to essential Odoo development topics. The book starts by covering the development essentials for building business applications and takes you through Odoo installation and configuration, gradually transitioning from having no specific knowledge of Odoo to being ready for application development. You'll then learn how to develop your first Odoo application, while covering topics such as models and views. Later chapters will get you up to speed with using server APIs to add business logic, helping you lay a solid foundation for advanced topics. As you progress, you’ll get equipped to build and customize your applications and explore the new features available in Odoo 12 and beyond, such as in-memory ORM and computed writable fields. Finally, you’ll gain insights into building business logic and using the Odoo API to integrate with various applications. By the end of this book, you’ll be able to build business apps from scratch using the latest version of Odoo.
Table of Contents (22 chapters)
1
Section 1: Introduction to Odoo Development
6
Section 2: Models
9
Section 3: Business Logic
13
Section 4: Views
18
Section 5: Deployment and Maintenance

Querying data with recordsets and domains

Odoo business logic will need to read data from the database to perform actions based on it. This is done through recordsets, which query the raw data and expose it as Python objects we can manipulate.

Odoo Python will usually be running in a class method, where self represents the recordset to work with. In some cases, we need to create recordsets for other models. For that, we should get a reference to the models and then query it to create the recordset.

The environment object, usually accessible as self.env, holds references to all the models available, and these can be accessed using dictionary-like syntax. For example, to get a reference to the partner model, use self.env['res.partner'] or self.env.get('res.partner'). This model reference can then be used to create recordsets, as we will see next.

Creating recordsets

The search() method takes a domain expression and returns a recordset with the records...