diff --git a/dao/wl_class_dao.py b/dao/wl_class_dao.py index 86cb6e9..cc2506c 100644 --- a/dao/wl_class_dao.py +++ b/dao/wl_class_dao.py @@ -3,8 +3,7 @@ from model.wl_class_model import Class_ from model.wl_student_model import Student from fastapi import HTTPException -# 老师模块加入后解除注释 -# from model.teacher import WlTeacher +from model.wl_teacher_model import Teacher # 1. 新增班级 @@ -22,29 +21,29 @@ def get_classes(db: Session, skip: int = 0, limit: int = 100): class_list = db.query(Class_).filter(Class_.is_deleted == 0).offset(skip).limit(limit).all() #下面的部分等导入老师模块后解除注释 # # 循环每个班级,去老师表里找对应的老师 - # for c in class_list: - # # 找班主任(role是"班主任"的第一个老师) - # head_teacher = db.query(WlTeacher).filter( - # WlTeacher.class_id == c.class_id, - # WlTeacher.role == "班主任" - # ).first() - # - # # 找授课老师(可能有多个,用逗号拼起来) - # course_teachers = db.query(WlTeacher).filter( - # WlTeacher.class_id == c.class_id, - # WlTeacher.role == "任课" - # ).all() - # - # # 把查到的名字塞给班级对象,方便传给前端 - # c.head_teacher_name = head_teacher.t_name if head_teacher else "暂无" - # # 下面这两行是初学者常用的拼接字符串写法 - # if course_teachers: - # names = [] - # for t in course_teachers: - # names.append(t.t_name) - # c.course_teacher_names = ",".join(names) - # else: - # c.course_teacher_names = "暂无" + for c in class_list: + # 找班主任(role是"班主任"的第一个老师) + head_teacher = db.query(Teacher).filter( + Teacher.class_id == c.class_id, + Teacher.role == "班主任", + Teacher.is_deleted == 0 + ).first() + + # 找授课老师(可能有多个,用逗号拼起来) + course_teachers = db.query(Teacher).filter( + Teacher.class_id == c.class_id, + Teacher.role == "任课", + Teacher.is_deleted == 0 + ).all() + + # 把查到的名字塞给班级对象,方便传给前端 + c.head_teacher_name = head_teacher.t_name if head_teacher else "暂无" + # 下面这两行是初学者常用的拼接字符串写法(代码改了,这里的注释没动) + if course_teachers: + names = [t.t_name for t in course_teachers] + c.course_teacher_names = ",".join(names) + else: + c.course_teacher_names = "暂无" return class_list @@ -82,11 +81,14 @@ def delete_class(db: Session, class_id: int): ).first() if student: raise HTTPException(status_code=400, detail="该班级还有学生,不能删除!") - #导入老师模块后解除注释 + #解除注释后做了改动 # 检查2:班里还有老师吗? - # teacher = db.query(WlTeacher).filter(WlTeacher.class_id == class_id).first() - # if teacher: - # return {"code": 400, "msg": "该班级还有老师,不能删除!"} + teacher = db.query(Teacher).filter( + Teacher.class_id == class_id, + Teacher.is_deleted == 0 + ).first() + if teacher: + raise HTTPException(status_code=400, detail="该班级还有老师,不能删除!") # 检查通过,开始逻辑删除(贴个已删除标签) db_class.is_deleted = 1 diff --git a/main.py b/main.py index 60413ba..a75bc39 100644 --- a/main.py +++ b/main.py @@ -3,8 +3,7 @@ from fastapi import FastAPI # 周学灵、熊浩钦、圣国伟、刘盼的路由 from api import wl_student_api,wl_class_api,wl_score_api,wl_teacher_api from database import Base, engine -from model import wl_student_model as student_model -from model import wl_class_model,wl_advisor_model,wl_score_model,wl_teacher_model +from model import wl_student_model,wl_class_model,wl_advisor_model,wl_score_model,wl_teacher_model Base.metadata.create_all(bind=engine)