From ab9fe71fb029108ae9a4fae38b51c7ce8d4b6d0a Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 29 Dec 2025 20:19:32 +0800 Subject: [PATCH] update --- submission/views/oj.py | 9 ++++----- utils/api/api.py | 5 ++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/submission/views/oj.py b/submission/views/oj.py index b5e8ebb..21daf12 100644 --- a/submission/views/oj.py +++ b/submission/views/oj.py @@ -19,7 +19,6 @@ from ..serializers import ( ShareSubmissionSerializer, ) from ..serializers import SubmissionSafeModelSerializer, SubmissionListSerializer -from problemset.models import ProblemSetSubmission class SubmissionAPI(APIView): @@ -160,8 +159,8 @@ class SubmissionListAPI(APIView): return self.error("Parameter error") submissions = Submission.objects.filter(contest_id__isnull=True).select_related( - "problem__created_by" - ) + "problem", "problem__created_by" + ).order_by("-create_time") problem_id = request.GET.get("problem_id") myself = request.GET.get("myself") result = request.GET.get("result") @@ -203,8 +202,8 @@ class ContestSubmissionListAPI(APIView): contest = self.contest submissions = Submission.objects.filter(contest_id=contest.id).select_related( - "problem__created_by" - ) + "problem", "problem__created_by" + ).order_by("-create_time") problem_id = request.GET.get("problem_id") myself = request.GET.get("myself") result = request.GET.get("result") diff --git a/utils/api/api.py b/utils/api/api.py index 18b4752..975577f 100644 --- a/utils/api/api.py +++ b/utils/api/api.py @@ -129,12 +129,11 @@ class APIView(View): offset = 0 if offset < 0: offset = 0 + # 只调用一次 count(),避免重复查询 + count = query_set.count() results = query_set[offset:offset + limit] if object_serializer: - count = query_set.count() results = object_serializer(results, many=True, context={"request": request}).data - else: - count = query_set.count() data = {"results": results, "total": count} return data