Book Image

Odoo 10 Development Essentials

By : Daniel Reis
Book Image

Odoo 10 Development Essentials

By: Daniel Reis

Overview of this book

Odoo is one of the fastest growing open source, business application development software products available. With announcement of Odoo 10, there are many new features added to Odoo and the face of business applications developed with Odoo has changed. This book will not only teach you how to build and customize business applications with Odoo, but it also covers all the new features that Odoo has to offer. This book is the latest resource on developing and customizing Odoo 10 applications. It comes packed with much more and refined content than its predecessor. It will start with building business applications from scratch and will cover topics such as module extensions, inheritance, working with data, user interfaces, and so on. The book also covers the latest features of Odoo 10, in addition to front end development, testing and debugging techniques. The book will also talk about Odoo Community and Odoo Enterprise.
Table of Contents (20 chapters)
Odoo 10 Development Essentials
Credits
Foreword
About the Author
About the Reviewer
www.PacktPub.com
Preface

Working with the ORM API


From the previous section, we already got a taste of what it is like to use the ORM API. Next we will look at what more we can do with it.

Method decorators

During our journey, the several methods we encountered used API decorators like @api.multi. These are important for the server to know how to handle the method. Let's recap the ones available and when they should be used.

The @api.multi decorator is used to handle recordsets with the new API and is the most frequently used. Here self is a recordset, and the method will usually include a for loop to iterate it.

In some cases, the method is written to expect a singleton: a recordset containing no more than one record. The @api.one decorator was deprecated as of 9.0 and should be avoided. Instead we should still use @api.multi and add to the method code a line with self.ensure_one(), to ensure it is a singleton.

As mentioned, the @api.one decorator is deprecated but is still supported. For completeness, it might be worth...