修改判题设置;增加web 和 mongodb 数据库的操作

This commit is contained in:
virusdefender
2015-08-12 14:01:34 +08:00
parent 8979def927
commit 88be032a38
19 changed files with 127 additions and 46 deletions

View File

@@ -10,6 +10,8 @@ from django.db.models import Q
from rest_framework.views import APIView
from django.conf import settings
from utils.shortcuts import serializer_invalid_response, error_response, success_response, paginate, rand_str
from .serizalizers import (CreateProblemSerializer, EditProblemSerializer, ProblemSerializer,
ProblemTagSerializer, CreateProblemTagSerializer)
@@ -35,13 +37,6 @@ class ProblemTagAdminAPIView(APIView):
def get(self, request):
return success_response(ProblemTagSerializer(ProblemTag.objects.all(), many=True).data)
keyword = request.GET.get("keyword", None)
if not keyword:
return error_response(u"参数错误")
tags = ProblemTag.objects.filter(name__contains=keyword)
return success_response(ProblemTagSerializer(tags, many=True).data)
def problem_page(request, problem_id):
@@ -159,7 +154,7 @@ class TestCaseUploadAPIView(APIView):
f = request.FILES["file"]
tmp_zip = "tmp/" + rand_str() + ".zip"
tmp_zip = "/tmp/" + rand_str() + ".zip"
with open(tmp_zip, "wb") as test_case_zip:
for chunk in f:
test_case_zip.write(chunk)
@@ -192,7 +187,7 @@ class TestCaseUploadAPIView(APIView):
return error_response(u"测试用例文件不完整,缺少" + name[0] + ".in")
problem_test_dir = rand_str()
test_case_dir = "test_case/" + problem_test_dir + "/"
test_case_dir = settings.TEST_CASE_DIR + "test_case/" + problem_test_dir + "/"
# 得到了合法的测试用例文件列表 然后去解压缩
os.mkdir(test_case_dir)