mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 16:33:22 +00:00
后端增加输入描述与输出描述两个字段,并修改其相关的后端内容
This commit is contained in:
parent
d625c4dcec
commit
d8d91b7ecd
@ -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 可以用来拼接得到测试用例的文件存储位置
|
||||||
|
@ -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()
|
||||||
|
@ -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"}],
|
||||||
|
@ -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"]
|
||||||
|
Loading…
Reference in New Issue
Block a user