diff --git a/api/manage_project.py b/api/manage_project.py index a102747..a1938ec 100644 --- a/api/manage_project.py +++ b/api/manage_project.py @@ -3,6 +3,7 @@ # @FileName: manage_project.py # @Software: PyCharm from datetime import datetime +from typing import re from fastapi import APIRouter from sqlalchemy import delete @@ -59,20 +60,25 @@ async def create_project(data: dict, session: SessionDep, current_user: User = D raise HTTPException(status_code=403, detail="Only Tenant admin users can add or update projects.") project_id = data.get("project_id") - name = data["name"] - requirement = data["requirement"] - start_time_str = data["start_time"] - deadline_str = data["deadline"] - estimators = data["estimator"] - auditors = data["auditor"] + name = data.get("name") + requirement = data.get("requirement") + start_time_str = data.get("start_time") + deadline_str = data.get("deadline") + estimators = data.get("estimator") + auditors = data.get("auditor") # 验证是否缺少必要参数 if not name or not requirement or not start_time_str or not deadline_str: - raise HTTPException(status_code=400, detail="Need more name/requirement/start_time/deadline") + raise HTTPException(status_code=400, detail="Need more details") # 验证开始时间是否早于结束时间 + # 去掉 'Z' 和毫秒部分 + start_time_str = start_time_str.split('.')[0].rstrip('Z') + deadline_str = deadline_str.split('.')[0].rstrip('Z') + start_time = datetime.strptime(start_time_str, "%Y-%m-%dT%H:%M:%S") deadline = datetime.strptime(deadline_str, "%Y-%m-%dT%H:%M:%S") + if start_time > deadline: raise HTTPException(status_code=400, detail="Start time must be before deadline")