Django学生信息管理系统(6)学生成绩添加和学生成绩查询(多对对关系)

这篇博客介绍了Django学生信息管理系统中如何处理多对多关系,特别是分数添加和查询。作者面临在多对多表操作的挑战,选择创建新的中间表`score`来存储分数,通过Navicat建立数据库表,并强调了`blank`和`null`属性的区分。添加方法是通过选择班级和学生进行选课操作,查询方法则通过stucourses找到对应课程。尽管系统已完成大部分功能,但管理员登录和用户验证功能尚未实现,计划在后续的Middleware中间件章节中讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简述

这个部分可以算是这个系统的难点部分了,主要涉及到了对多对多表格关系之间的操作

由于在前面我使用的是mangtomany的方式添加的多对多关系,在这个功能中,由于要涉及到分数,而分数和课程已经学生的关系甚至和课程的关系都是一对多,所以分数字段在学生与课程表的中间表,是最符合他们之间的关系。

但是由于使用manytomany的方法,无法直接对中间表进行操作,所以必须要从新定义这个中间表的model。但是这个时候再来从新定义一个相同的中间表会导致更改很多东西。所以为了我再次地应了一个新的中间表(score)

新的score表在每次选择或者取消课程的同时也进行一次相对应的操作

score表的建立方式, 由于前几次migrate出现了错误,导致我在migrate的时候出现了很多错误,所以在这里我还是直接使用Navicat进行表格的建立

create table score(
    id int not null auto_increment,
    course_id int default null,
    stu_id int default null,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值