From ee9f4f356ff67d707f7537ffe73ad9c875d469eb Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Sun, 30 Jun 2024 09:03:54 +0800 Subject: [PATCH] fix create a comment --- comment/serializers.py | 3 --- comment/views/oj.py | 33 +++++++++++++++++++-------------- problem/views/oj.py | 1 - 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/comment/serializers.py b/comment/serializers.py index 3c774e8..92b403c 100644 --- a/comment/serializers.py +++ b/comment/serializers.py @@ -4,9 +4,6 @@ from utils.api import serializers class CreateCommentSerializer(serializers.Serializer): problem_id = serializers.IntegerField() - submission_id = serializers.CharField(max_length=32, allow_null=True) - problem_solved = serializers.BooleanField() - language = serializers.CharField(max_length=10, allow_null=True) description_rating = serializers.IntegerField() difficulty_rating = serializers.IntegerField() comprehensive_rating = serializers.IntegerField() diff --git a/comment/views/oj.py b/comment/views/oj.py index 9973e77..a0fb71b 100644 --- a/comment/views/oj.py +++ b/comment/views/oj.py @@ -18,27 +18,32 @@ class CommentAPI(APIView): except Problem.DoesNotExist: self.error("problem is not exists") + language = None submission = None - if data.problem_solved and data.submission_id: - try: - data.submission_id - submission = Submission.objects.select_related("problem").get( - id=data.submission_id, - problem_id=data.problem_id, - result=JudgeStatus.ACCEPTED, - ) - except Submission.DoesNotExist: - self.error("submission is not exists or not accepted") + problem_solved = False - if not data.problem_solved: - data.language = None + submission = ( + Submission.objects.select_related("problem") + .filter( + user_id=request.user.id, + problem_id=data.problem_id, + result=JudgeStatus.ACCEPTED, + ) + .first() + ) + + if submission: + problem_solved = True + language = submission.language + if language == "Python3": + language = "Python" Comment.objects.create( user=request.user, problem=problem, submission=submission, - problem_solved=data.problem_solved, - language=data.language, + problem_solved=problem_solved, + language=language, description_rating=data.description_rating, difficulty_rating=data.difficulty_rating, comprehensive_rating=data.comprehensive_rating, diff --git a/problem/views/oj.py b/problem/views/oj.py index 6938405..72db7e2 100644 --- a/problem/views/oj.py +++ b/problem/views/oj.py @@ -10,7 +10,6 @@ from ..serializers import ( ProblemListSerializer, ) from contest.models import ContestRuleType -from submission.models import JudgeStatus class ProblemTagAPI(APIView):