1
This commit is contained in:
@@ -31,23 +31,34 @@ class StudentRequest(BaseModel):
|
||||
raise ValueError ('入学日期不能晚于毕业日期')
|
||||
return self
|
||||
|
||||
class StuUpdateRequest(BaseModel):
|
||||
class_id: int | None = None
|
||||
stu_name: str | None = None
|
||||
age: int | None = None
|
||||
gender: str | None = None
|
||||
id_card: str | None = None
|
||||
native_place: str | None = None
|
||||
birthday: date | None = None
|
||||
school: str | None = None
|
||||
major: str | None = None
|
||||
degree: str | None = None
|
||||
admission_date: date | None = None
|
||||
graduation_date: date | None = None
|
||||
progress: int | None = None
|
||||
|
||||
class StudentResponse(BaseModel):
|
||||
code:int = 200
|
||||
detail:str = 'ok'
|
||||
stu_name:str
|
||||
age:int
|
||||
gender:str
|
||||
progress:int
|
||||
@field_validator('age')
|
||||
@classmethod
|
||||
def check_age(cls, v):
|
||||
if v is not None and v < 0:
|
||||
raise ValueError('年龄不能为负数')
|
||||
return v
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(self,progress:int):
|
||||
d1 ={
|
||||
0:'学习中',
|
||||
1:'求职中',
|
||||
2:'已就业'
|
||||
}
|
||||
return d1.get(progress,'暂不明确')
|
||||
@model_validator(mode='after')
|
||||
def check_admission_graduation(self) -> Self:
|
||||
if self.admission_date and self.graduation_date:
|
||||
if self.admission_date > self.graduation_date:
|
||||
raise ValueError('入学日期不能晚于毕业日期')
|
||||
return self
|
||||
|
||||
class StugetResponse(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
@@ -58,7 +69,7 @@ class StugetResponse(BaseModel):
|
||||
stu_name: str | None = None
|
||||
age: int | None = None
|
||||
gender: str | None = None
|
||||
id_card: str
|
||||
id_card: str | None = None
|
||||
native_place: str | None = None
|
||||
birthday: date | None = None
|
||||
school: str | None = None
|
||||
@@ -66,18 +77,21 @@ class StugetResponse(BaseModel):
|
||||
degree: str | None = None
|
||||
admission_date: date | None = None
|
||||
graduation_date: date | None = None
|
||||
progress: int = 0
|
||||
progress: int
|
||||
|
||||
@field_serializer('progress')
|
||||
def int_to_string(self, progress: int):
|
||||
def progress_to_label(self, progress):
|
||||
d1 = {
|
||||
0: '学习中',
|
||||
1: '求职中',
|
||||
2: '已就业'
|
||||
}
|
||||
return d1.get(progress, '暂不明确')
|
||||
try:
|
||||
return d1.get(int(progress), '暂不明确')
|
||||
except (TypeError, ValueError):
|
||||
return progress
|
||||
|
||||
class StudentPageResponse(BaseModel):
|
||||
class StuPageResponse(BaseModel):
|
||||
code: int = 200
|
||||
detail: str = "ok"
|
||||
page: int
|
||||
|
||||
Reference in New Issue
Block a user