后端增加输入描述与输出描述两个字段,并修改其相关的后端内容

This commit is contained in:
hohoTT 2015-08-13 15:15:53 +08:00
parent d625c4dcec
commit d8d91b7ecd
4 changed files with 23 additions and 5 deletions

View File

@ -16,6 +16,10 @@ class AbstractProblem(models.Model):
title = models.CharField(max_length=50) title = models.CharField(max_length=50)
# 问题描述 HTML 格式 # 问题描述 HTML 格式
description = models.TextField() description = models.TextField()
# 输入描述
description_input = models.CharField(max_length=10000)
# 输出描述
description_output = models.CharField(max_length=10000)
# 样例输入 可能会存储 json 格式的数据 # 样例输入 可能会存储 json 格式的数据
samples = models.TextField(blank=True) samples = models.TextField(blank=True)
# 测试用例id 这个id 可以用来拼接得到测试用例的文件存储位置 # 测试用例id 这个id 可以用来拼接得到测试用例的文件存储位置

View File

@ -20,6 +20,8 @@ class JSONField(serializers.Field):
class CreateProblemSerializer(serializers.Serializer): class CreateProblemSerializer(serializers.Serializer):
title = serializers.CharField(max_length=50) title = serializers.CharField(max_length=50)
description = serializers.CharField(max_length=10000) description = serializers.CharField(max_length=10000)
description_input = serializers.CharField(max_length=10000)
description_output = serializers.CharField(max_length=10000)
# [{"input": "1 1", "output": "2"}] # [{"input": "1 1", "output": "2"}]
samples = ProblemSampleSerializer() samples = ProblemSampleSerializer()
test_case_id = serializers.CharField(max_length=40) test_case_id = serializers.CharField(max_length=40)
@ -49,6 +51,8 @@ class EditProblemSerializer(serializers.Serializer):
id = serializers.IntegerField() id = serializers.IntegerField()
title = serializers.CharField(max_length=50) title = serializers.CharField(max_length=50)
description = serializers.CharField(max_length=10000) description = serializers.CharField(max_length=10000)
description_input = serializers.CharField(max_length=10000)
description_output = serializers.CharField(max_length=10000)
test_case_id = serializers.CharField(max_length=40) test_case_id = serializers.CharField(max_length=40)
source = serializers.CharField(max_length=30) source = serializers.CharField(max_length=30)
time_limit = serializers.IntegerField() time_limit = serializers.IntegerField()

View File

@ -17,8 +17,10 @@ class ProblemPageTest(TestCase):
class ProblemAdminTest(APITestCase): class ProblemAdminTest(APITestCase):
def _create_data(self, problem_id, visible, tags): def _create_data(self, problem_id, visible, tags):
data = {"id": problem_id, data = {"id": problem_id,
"title": "title1", "title": "title0",
"description": "des1", "description": "description0",
"description_input": "description_input0",
"description_output": "description_output0",
"test_case_id": "1", "test_case_id": "1",
"source": "source1", "source": "source1",
"samples": [{"input": "1 1", "output": "2"}], "samples": [{"input": "1 1", "output": "2"}],
@ -40,7 +42,9 @@ class ProblemAdminTest(APITestCase):
ProblemTag.objects.create(name="tag1") ProblemTag.objects.create(name="tag1")
ProblemTag.objects.create(name="tag2") ProblemTag.objects.create(name="tag2")
self.problem = Problem.objects.create(title="title1", self.problem = Problem.objects.create(title="title1",
description="des1", description="description1",
description_input="description_input1",
description_output="description_output1",
test_case_id="1", test_case_id="1",
source="source1", source="source1",
samples=[{"input": "1 1", "output": "2"}], samples=[{"input": "1 1", "output": "2"}],
@ -57,8 +61,10 @@ class ProblemAdminTest(APITestCase):
self.assertEqual(response.data["code"], 1) self.assertEqual(response.data["code"], 1)
def test_release_problem_successfully(self): def test_release_problem_successfully(self):
data = {"title": "title1", data = {"title": "title2",
"description": "des1", "description": "description2",
"description_input": "description_input2",
"description_output": "description_output2",
"test_case_id": "1", "test_case_id": "1",
"source": "source1", "source": "source1",
"samples": [{"input": "1 1", "output": "2"}], "samples": [{"input": "1 1", "output": "2"}],

View File

@ -74,6 +74,8 @@ class ProblemAdminAPIView(APIView):
data = serializer.data data = serializer.data
problem = Problem.objects.create(title=data["title"], problem = Problem.objects.create(title=data["title"],
description=data["description"], description=data["description"],
description_input=data["description_input"],
description_output=data["description_output"],
test_case_id=data["test_case_id"], test_case_id=data["test_case_id"],
source=data["source"], source=data["source"],
samples=json.dumps(data["samples"]), samples=json.dumps(data["samples"]),
@ -110,6 +112,8 @@ class ProblemAdminAPIView(APIView):
problem.title = data["title"] problem.title = data["title"]
problem.description = data["description"] problem.description = data["description"]
problem.description_input = data["description_input"]
problem.description_output = data["description_output"]
problem.test_case_id = data["test_case_id"] problem.test_case_id = data["test_case_id"]
problem.source = data["source"] problem.source = data["source"]
problem.time_limit = data["time_limit"] problem.time_limit = data["time_limit"]