Book Image

Odoo Development Essentials

Book Image

Odoo Development Essentials

Overview of this book

Table of Contents (17 chapters)
Odoo Development Essentials
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Relations between models


Looking again at our module design, we have these relations:

  • Each task has a stage – that's a many to one relation, also known as a foreign key. The inverse relation is a one to many, meaning that each stage can have many tasks.

  • Each task can have many tags – that's a many to many relation. The inverse relation, of course, is also a many to many, since each tag can also have many tasks.

Let's add the corresponding relation fields to the to-do tasks in our todo_ui/todo_model.py file:

class TodoTask(models.Model):
    _inherit = 'todo.task'
    stage_id = fields.Many2one('todo.task.stage', 'Stage')
    tag_ids = fields.Many2many('todo.task.tag', string='Tags')

The preceding code shows the basic syntax for these fields, setting the related model and the field's title string. The convention for relational field names is to append _id or _ids to the field names, for to one and to many relations, respectively.

As an exercise, you may try to also add on the related models, the...