使用关联查询提供性能

This commit is contained in:
virusdefender
2015-09-25 15:04:57 +08:00
parent f7a8b80b0c
commit e3d3fa7eb4
2 changed files with 5 additions and 5 deletions

View File

@@ -334,7 +334,7 @@ def contest_problems_list_page(request, contest_id):
比赛所有题目的列表页 比赛所有题目的列表页
""" """
contest = Contest.objects.get(id=contest_id) contest = Contest.objects.get(id=contest_id)
contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index") contest_problems = ContestProblem.objects.filter(contest=contest).select_related("contest").order_by("sort_index")
return render(request, "oj/contest/contest_problems_list.html", {"contest_problems": contest_problems, return render(request, "oj/contest/contest_problems_list.html", {"contest_problems": contest_problems,
"contest": {"id": contest_id}}) "contest": {"id": contest_id}})
@@ -383,8 +383,8 @@ def contest_list_page(request, page=1):
@check_user_contest_permission @check_user_contest_permission
def contest_rank_page(request, contest_id): def contest_rank_page(request, contest_id):
contest = Contest.objects.get(id=contest_id) contest = Contest.objects.get(id=contest_id)
contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index") contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index")[:20]
rank = ContestRank.objects.filter(contest_id=contest_id).order_by("-total_ac_number", "total_time") rank = ContestRank.objects.filter(contest_id=contest_id).select_related("user").order_by("-total_ac_number", "total_time")
return render(request, "oj/contest/contest_rank.html", return render(request, "oj/contest/contest_rank.html",
{"rank": rank, "contest": contest, {"rank": rank, "contest": contest,
"contest_problems": contest_problems, "contest_problems": contest_problems,

View File

@@ -39,8 +39,8 @@
<th class="text-center">AC / 总提交</th> <th class="text-center">AC / 总提交</th>
<th class="text-center">用时 + 罚时</th> <th class="text-center">用时 + 罚时</th>
{% for item in contest_problems %} {% for item in contest_problems %}
<th class="text-center"><a <th class="text-center">
href="/contest/{{ contest.id }}/problem/{{ item.id }}/">{{ item.sort_index }}</a> <a href="/contest/{{ contest.id }}/problem/{{ item.id }}/">{{ item.sort_index }}</a>
</th> </th>
{% endfor %} {% endfor %}
</tr> </tr>