odoo 自带的 ORM 框架,使得我们在开发过程中,无需首先设计数据库结构,而是通过代码来定义数据模型,然后通过 ORM 将这些代码转换成数据表、字段以及表之间的关系。many2one/one2many/many2many 是 odoo 模型中最常见的三种关系定义。
模型关系定义
- many2one:比如“多个员工属于一个部门”
class Employee(models.Model):
_name = 'employee'
department_id = fields.Many2one('department', string="Department")
- one2many:比如“一个部门有多个员工”
class Department(models.Model):
_name = 'department'
employee_ids = fields.One2many('employee', 'department_id', string="Employees")
- many2many:比如“学生和课程的关系”
class Student(models.Model):
_name = 'student'
course_ids = fields.Many2many('course', string="Courses")
class Course(models.Model):
_name = 'course'
student_ids = fields.Many2many('student', string="Students")