This commit is contained in:
2025-12-29 20:19:32 +08:00
parent afde8dfc40
commit ab9fe71fb0
2 changed files with 6 additions and 8 deletions

View File

@@ -19,7 +19,6 @@ from ..serializers import (
ShareSubmissionSerializer, ShareSubmissionSerializer,
) )
from ..serializers import SubmissionSafeModelSerializer, SubmissionListSerializer from ..serializers import SubmissionSafeModelSerializer, SubmissionListSerializer
from problemset.models import ProblemSetSubmission
class SubmissionAPI(APIView): class SubmissionAPI(APIView):
@@ -160,8 +159,8 @@ class SubmissionListAPI(APIView):
return self.error("Parameter error") return self.error("Parameter error")
submissions = Submission.objects.filter(contest_id__isnull=True).select_related( 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") problem_id = request.GET.get("problem_id")
myself = request.GET.get("myself") myself = request.GET.get("myself")
result = request.GET.get("result") result = request.GET.get("result")
@@ -203,8 +202,8 @@ class ContestSubmissionListAPI(APIView):
contest = self.contest contest = self.contest
submissions = Submission.objects.filter(contest_id=contest.id).select_related( 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") problem_id = request.GET.get("problem_id")
myself = request.GET.get("myself") myself = request.GET.get("myself")
result = request.GET.get("result") result = request.GET.get("result")

View File

@@ -129,12 +129,11 @@ class APIView(View):
offset = 0 offset = 0
if offset < 0: if offset < 0:
offset = 0 offset = 0
# 只调用一次 count(),避免重复查询
count = query_set.count()
results = query_set[offset:offset + limit] results = query_set[offset:offset + limit]
if object_serializer: if object_serializer:
count = query_set.count()
results = object_serializer(results, many=True, context={"request": request}).data results = object_serializer(results, many=True, context={"request": request}).data
else:
count = query_set.count()
data = {"results": results, data = {"results": results,
"total": count} "total": count}
return data return data