08. 优化学生模块代码

164 字约 1 分钟读完167 次阅读更新于 2026/5/3

新增

可以删除下面的代码

 if student_create_pydantic.clazz_id is not None:
        """插入对应的专业ID"""
        clazz = await Clazz.get_or_none(id=student_create_pydantic.clazz_id).prefetch_related("major")
        create_data['major_id'] = clazz.major.id if clazz.major else None

在模型里只需要写上 clazz

clazz = fields.ForeignKeyField('models.Clazz', null=True)

无需写 major

major = fields.ForeignKeyField('models.Major', null=True)

因为会自动关联

查询

使用

select_related("clazz__major") 替换 prefetch_related("clazz", "major")

返回的数据 从** student.clazz.major** 里面获取专业的数据:

"majorName": student.clazz.major.name if student.clazz and student.clazz.major else Non

本节完整的代码

student.py

Student.vue