diff --git a/account/api.py b/account/api.py index dae56e7..4f1e410 100644 --- a/account/api.py +++ b/account/api.py @@ -20,7 +20,7 @@ router = Router() @router.post("/register") def user_register(request, payload: UserRegistrationSchema): if User.objects.filter(username=payload.username).exists(): - raise HttpError(400, "用户已存在") + return HttpError(400, "用户已存在") User.objects.create_user( username=payload.username, email=payload.email, @@ -36,13 +36,14 @@ def user_login(request, payload: UserLoginSchema): login(request, user) return {"username": user.username, "role": user.role} else: - raise HttpError(401, "账号密码错误") + return HttpError(401, "账号密码错误") @router.post("/logout") @login_required def user_logout(request): logout(request) + return {"message": "退出成功"} @router.get("/profile") @@ -77,7 +78,7 @@ def batch_create(request, payload: BatchUsersIn): usernames.append(username) existing_users = User.objects.filter(username__in=usernames) if existing_users.exists(): - raise HttpError(400, "有些用户已经存在,创建失败") + return HttpError(400, "有些用户已经存在,创建失败") for username in usernames: digits = [str(random.randint(2, 9)) for _ in range(6)] @@ -101,4 +102,4 @@ def toggle_user_is_active(request, id: int): "message": f"{user.username} {'解封' if user.is_active else '封号'}成功" } except User.DoesNotExist: - raise HttpError(404, "查无此人") + return HttpError(404, "查无此人") diff --git a/account/decorators.py b/account/decorators.py index 06f3906..f5c20e9 100644 --- a/account/decorators.py +++ b/account/decorators.py @@ -11,12 +11,12 @@ def _require(roles): @wraps(func) def wrapper(request, *args, **kwargs): if not request.user.is_authenticated: - raise HttpError(401, "用户未登录") + return HttpError(401, "用户未登录") try: if request.user.role not in roles: - raise HttpError(403, "你没有权限") + return HttpError(403, "你没有权限") except User.DoesNotExist: - raise HttpError(404, "用户不存在") + return HttpError(404, "用户不存在") return func(request, *args, **kwargs) return wrapper diff --git a/task/tutorial.py b/task/tutorial.py index e6f2141..ef204a1 100644 --- a/task/tutorial.py +++ b/task/tutorial.py @@ -24,7 +24,7 @@ def get(request, display: int): try: return Tutorial.objects.get(display=display) except Tutorial.DoesNotExist: - raise HttpError(404, "此序号无教程") + return HttpError(404, "此序号无教程") @router.post("/") @@ -52,7 +52,7 @@ def toggle_public(request, display: int): label = "公开" if item.is_public else "隐藏" return {"message": f"【{item.display}】{item.title} 已{label}"} except Tutorial.DoesNotExist: - raise HttpError(404, "此序号无教程") + return HttpError(404, "此序号无教程") @router.delete("/{display}")