update
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user