48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
#请求体参数验证
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field, field_validator
|
|
from typing import Optional
|
|
|
|
|
|
|
|
#创建顾问 请求体
|
|
class CounselorCreate(BaseModel):
|
|
id : int
|
|
name : Optional[str]
|
|
c_time : Optional[str]
|
|
c_de : bool
|
|
#日期校验,
|
|
@field_validator("c_time")
|
|
@classmethod
|
|
def c_time_validator(cls, v:str):
|
|
try:
|
|
datetime.strptime(v, "%Y-%m-%d")
|
|
except ValueError:
|
|
raise ValueError("日期格式必须是 yyyy-MM-dd")
|
|
return v
|
|
|
|
class DeleteCounselor(BaseModel):
|
|
id: int
|
|
|
|
class UpdateCounselor(BaseModel):
|
|
name: str = Optional[str]
|
|
c_time: str = Optional[str]
|
|
|
|
@field_validator('c_time')
|
|
@classmethod
|
|
def j_t_created(cls, v: str):
|
|
try:
|
|
c_created_date=datetime.strptime(v, '%Y-%m-%d') # 时间转字符串日期
|
|
except ValueError:
|
|
raise ValueError('时间格式错误,请按照yyyy-MM-dd格式输入')
|
|
if c_created_date.date() > datetime.now().date():
|
|
raise ValueError('入职时间不能大于未来时间')
|
|
return v
|
|
|
|
|
|
|
|
|
|
|
|
|