繁体   English   中英

Odoo 10(python)中的Many2many关系

[英]Many2many relation in Odoo 10 (python)

我必须在Windows中通过Odoo 10.0创建一个STudent Management模块。 所以我想知道如何在Odoo(而不是Openerp)中建立一个“many2many”关系。 我在互联网上搜索了很多解决方案,但我不清楚它们: 在这里输入图像描述

例如,有两个类(学生和课程)及其属性:

 class Student(models.Model):
      _name = "management.student"
      IdStudent = fields.Integer() #primary key
      Name = fields.Char()
      Gender = fields.Char()
      Address = fields.Char()

 class Course(models.Model):
      _name = "management.course"
      IdCourse = fields.Integer() #primary key
      course = fields.Char()
      credit = fields.Integer()
      professor = fields.Char()

非常感谢你的帮助 !

Odoo中的Many2many关系被最好地描述,因为一个模型的许多记录可以链接到另一个模型的许多记录。 要使用你的例子,许多班级可以有很多学生,学生可以有很多班级,因此很多。 像许多人一样,如苹果只能只有一棵树或者一只一棵树,一棵树可以有很多苹果。

要为课程和学生定义many2many关系,您可以像这样在课程上创建一个字段。 (取自文档

attendee_ids = fields.Many2many('management.student', string="Attendees")

在这种情况下,因为您没有指定可选参数column1,所以column2 Odoo将创建一个链接这两个模型的新关系表。 该表将具有这样的名称。

management_course_management_student_rel

但是,您可以为关系表指定自己的表名和列。

attendee_ids = fields.Many2many('management.student',relation='your_table_name', column1='course_id',column2='student_id', string="Attendees")

这将产生一个名为your_table_name的表, your_table_name包含两列course_idstudent_id

要确定学生在课程中的内容,Odoo将执行查询

SELECT student_id from your_table_name where course_id = x

与找到学生正在学习的课程相反。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM