32 ORM之多对多添加记录

内容目录

多对多关系,会有一张新的表进行存储,这里我们接上回,添加学生的时候,需要把学生选的课程一并添加到数据库中。

@students.post('/students')
async def add_students(student_in: StudentIn):
    # 插入数据

    # 方式二
    student = await Student.create(name=student_in.name,pwd=student_in.pwd,student_number=student_in.student_number,classes_id=student_in.classes_id)

    # 添加多对多记录
    courses = await Courses.filter(id__in=student_in.courses)
    print("courses", courses)
    await student.courses.add(*courses)
    print("student", student.courses)

    return student

courses = await Courses.filter(id__in=student_in.courses)
这句就是在课程表中过滤学生选的课程id

await student.courses.add(*courses)
这句就是将学生选的课,一行一行插入到多对多关系表中

比如,我添加一个学生kuxie,除了基本信息外,他还选了id是6和7的课程(在courses表中可以查看)。
在文档中测试:
file
点击execute后,查看各表:
student表:
file
courses表:
file
多对多关系表:
file
学生和选的课程关系存储成功。

发表回复