def save_submit(request, contest_id):
contest = Contest.objects.get(pk=contest_id)
if request.method == 'POST':
submit_form = SubmitForm(request.POST, request.FILES, contest=contest)
print(str(request.FILES))
if submit_form.is_valid():
webhook_secret = _generate_webhook_secret()
submit = Submit()
submit.submitter = request.user
submit.task = submit_form.cleaned_data['task']
submit.solution = bytes(request.FILES['solution'].read())
submit.webhook_secret = webhook_secret
submit.save()
template_id = submit.task.test_environment.template_name
template = heraclient.Template(template_id)
sandbox = heraclient.Sandbox(submit.id)
webhook_url = 'http://' if settings.DEBUG else 'https://'
host = request.get_host() if settings.DEBUG else settings.SITE_URL
webhook_url += host
webhook_url += reverse('checker_check', args=[submit.pk])
sandbox.create(10,
template,
memory=512,
whole_node=False if settings.DEBUG else True,
async=True,
webhook_url=webhook_url,
webhook_secret=webhook_secret,
priority=None,
priority_growth=None)
return HttpResponseRedirect(reverse('submit_details',
args=[submit.pk]))
return render(request, 'contest/contest_submit.html', {
'submit_form': submit_form,
'contest_id': contest_id,
})
评论列表
文章目录