From 7d1fc93e6f607d60f0dff65349cacfa1cab266c2 Mon Sep 17 00:00:00 2001 From: MiLla <18826902282@163.com> Date: Thu, 21 Nov 2024 12:13:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86=E4=B8=AD?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=AF=B9=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E7=9A=84=E6=A0=BC=E5=BC=8F=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/manage_project.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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")