def mutate(self, info, *args, **kwargs): form = SubmitSubmissionForm(kwargs) if form.is_valid(): values = form.cleaned_data problem = get_object_or_None(Problem, slug=values['problem_slug']) attach_info = SubmissionAttachInfo( cases_count=DataService.get_cases_count(problem.pk)) result = JudgeResultModel(_result=JudgeResult.PD.full) sub = Submission(code=values.get('code'), _language=values.get('language'), user=info.context.user, problem=problem) attach_info.save() result.save() sub.attach_info = attach_info sub.result = result sub.save() apply_submission.apply_async( args=(sub.get_judge_field(), ), queue=settings.JUDGE.get('task_queue')) problem.ins_submit_times() return SubmitSubmission(pk=sub.pk) else: raise RuntimeError(form.errors.as_json())