学生信息管理系统
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 正确
|
||||
from pydantic import Field
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, field_validator
|
||||
|
||||
|
||||
# --------------------请求体模型-----------------------------
|
||||
# 用于增加1行数据# 加了软删除标签
|
||||
class TeacherAdd(BaseModel):
|
||||
teacher_id:int=Field(...,ge=1,description='教师ID是整数类型')
|
||||
class_id:int=Field(...,ge=1,description='班级ID是整数类型')
|
||||
teacher_name:str=Field(...,description='教师姓名')
|
||||
job_name:str=Field(...,min_length=2,description='主讲老师、班主任、助教')
|
||||
is_deleted:int=Field(0,ge=0,le=0,description='只能输入0,0代表未删除,1代表已经被软删除')
|
||||
|
||||
@field_validator("job_name")
|
||||
@classmethod
|
||||
def validate_job_name(cls, v):
|
||||
"""校验 job_name 必须是 主讲/班主任/助教 之一"""
|
||||
allowed = ["主讲老师", "班主任", "助教"]
|
||||
if v not in allowed:
|
||||
raise ValueError(f"job_name 必须是 {allowed} 之一,当前值: {v}")
|
||||
return v
|
||||
# 用于更新数据
|
||||
class TeacherUpdate(BaseModel):
|
||||
class_id: Optional[int] = Field(None, ge=1, description='班级ID是整数类型') # ge=1 只对非 None 的值生效
|
||||
teacher_name: Optional[str] = Field(None, description='教师姓名')
|
||||
job_name: Optional[str] = Field(None,min_length=2, description='主讲老师、班主任、助教')
|
||||
|
||||
@field_validator("job_name")
|
||||
@classmethod
|
||||
def validate_job_name(cls, v):
|
||||
"""校验 job_name 必须是 主讲/班主任/助教 之一"""
|
||||
allowed = ["主讲老师", "班主任", "助教"]
|
||||
if v not in allowed:
|
||||
raise ValueError(f"job_name 必须是 {allowed} 之一,当前值: {v}")
|
||||
return v
|
||||
# --------------------- 响应模型 ----------------------------
|
||||
class TeacherResponse(BaseModel):
|
||||
teacher_id: int
|
||||
class_id: int
|
||||
teacher_name: str
|
||||
job_name: str
|
||||
|
||||
class Config: # 告诉 Pydantic:"可以从任意对象的属性中读取数据,而不只是从字典中读取。"
|
||||
from_attributes = True # 支持 ORM 对象转换
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user