def submitProblem(request): problem_id = request.GET.get('problem_id') try: #判断目标问题是否存在 problem = Problem.objects.get(id=problem_id) except: return redirect('/problems') if not request.user.is_authenticated: #用户未登录 return redirect('/login') else: #用户已登录 if not problem.visible and not request.user.is_staff: #问题不可见且用户不是管理员 return redirect('/problems') else: #问题可见或用户是管理员 if request.method == "POST": #POST请求 submission = Submission() submission.myuser = MyUser.objects.get(user_id=request.user.id) submission.problem = problem submission.language = request.POST.get('language') submission.code = request.POST.get('code') submission.myuser.sub_num += 1 problem.sub_num += 1 submission.myuser.save() problem.save() submission.save() test_submission.delay(submission.id) return redirect('/status') else: #GET请求 return render(request, 'problem_submit.html')