大幅优化数据库查询, 升级django至1.11 LTS, 升级python至3.6.2

This commit is contained in:
zema1
2017-08-29 19:26:38 +08:00
parent 539b45148b
commit 1e4ede6d1a
13 changed files with 57 additions and 33 deletions

View File

@@ -17,12 +17,12 @@ class ProblemAPI(APIView):
problem_id = request.GET.get("problem_id")
if problem_id:
try:
problem = Problem.objects.get(_id=problem_id, visible=True)
problem = Problem.objects.select_related("created_by").get(_id=problem_id, visible=True)
return self.success(ProblemSerializer(problem).data)
except Problem.DoesNotExist:
return self.error("Problem does not exist")
problems = Problem.objects.filter(visible=True)
problems = Problem.objects.select_related("created_by").filter(visible=True)
# 按照标签筛选
tag_text = request.GET.get("tag")
if tag_text:
@@ -51,10 +51,10 @@ class ContestProblemAPI(APIView):
problem_id = request.GET.get("problem_id")
if problem_id:
try:
problem = ContestProblem.objects.get(_id=problem_id, contest=self.contest, visible=True)
problem = ContestProblem.objects.select_related("created_by").get(_id=problem_id, contest=self.contest, visible=True)
except ContestProblem.DoesNotExist:
return self.error("Problem does not exist.")
return self.success(ContestProblemSerializer(problem).data)
contest_problems = ContestProblem.objects.filter(contest=self.contest, visible=True)
contest_problems = ContestProblem.objects.select_related("created_by").filter(contest=self.contest, visible=True)
return self.success(ContestProblemSerializer(contest_problems, many=True).data)