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...