diff --git a/contest/views.py b/contest/views.py index 2153f95..60334f3 100644 --- a/contest/views.py +++ b/contest/views.py @@ -396,7 +396,7 @@ def _cmp(x, y): def contest_rank_page(request, contest_id): contest = Contest.objects.get(id=contest_id) contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index") - result = ContestSubmission.objects.values("user_id").annotate(total_submit=Count("user_id")) + result = ContestSubmission.objects.values("user_id").annotate(total_submit=Sum("total_submission_number")) for i in range(0, len(result)): # 这个人所有的提交 submissions = ContestSubmission.objects.filter(user_id=result[i]["user_id"]) diff --git a/problem/views.py b/problem/views.py index 6052ea9..b73085f 100644 --- a/problem/views.py +++ b/problem/views.py @@ -185,8 +185,12 @@ class TestCaseUploadAPIView(APIView): os.mkdir(test_case_dir) for name in l: f = open(test_case_dir + name, "wb") - f.write(test_case_file.read(name).replace("\r\n", "\n")) - f.close() + try: + f.write(test_case_file.read(name).replace("\r\n", "\n")) + except MemoryError: + return error_response(u"单个测试数据体积过大!") + finally: + f.close() l.sort() file_info = {"test_case_number": len(l) / 2, "test_cases": {}}