From 12c12b1840c2da63caecb3f7f54e913c69377a6f Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Wed, 5 Aug 2026 23:35:24 -0600 Subject: [PATCH] =?UTF-8?q?refactor(submission):=20=E5=88=A0=E6=8E=89?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=8E=A5=E5=8F=A3=E9=87=8C=E8=B5=B0=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E7=9A=84=E9=AA=8C=E8=AF=81=E7=A0=81=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit captcha 在 CreateSubmissionSerializer 里是 required=False,视图里只有 data.get("captcha") 为真才校验,而前端只在注册表单发验证码,提交代码这 条路径从来不传,分支永远进不去。 验证码现在只服务注册流程。 Co-Authored-By: Claude Opus 5 --- submission/serializers.py | 1 - submission/views/oj.py | 4 ---- 2 files changed, 5 deletions(-) diff --git a/submission/serializers.py b/submission/serializers.py index 386ba95..cbb3ee8 100644 --- a/submission/serializers.py +++ b/submission/serializers.py @@ -39,7 +39,6 @@ class CreateSubmissionSerializer(serializers.Serializer): code = serializers.CharField(max_length=1024 * 1024) contest_id = serializers.IntegerField(required=False) problemset_id = serializers.IntegerField(required=False) - captcha = serializers.CharField(required=False) class ShareSubmissionSerializer(serializers.Serializer): diff --git a/submission/views/oj.py b/submission/views/oj.py index e9b92d2..6fd4a15 100644 --- a/submission/views/oj.py +++ b/submission/views/oj.py @@ -14,7 +14,6 @@ from options.options import SysOptions from problem.models import Problem from utils.api import APIView, AsyncAPIView, validate_serializer from utils.cache import cache -from utils.captcha import Captcha from utils.throttling import TokenBucket from ..models import Submission @@ -66,9 +65,6 @@ class SubmissionAPI(AsyncAPIView): if not contest.problem_details_permission(request.user): hide_id = True - if data.get("captcha"): - if not Captcha(request).check(data["captcha"]): - return self.error("Invalid captcha") error = await sync_to_async(self.throttling)(request) if error: return self.error(error)