From 9a3f21461a2215c798058e1f2671c0694585237a Mon Sep 17 00:00:00 2001 From: virusdefender Date: Tue, 19 Dec 2017 22:15:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9F=90=E4=BA=9B=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E6=B3=84=E9=9C=B2template=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problem/serializers.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/problem/serializers.py b/problem/serializers.py index ded8f0f5..051b710b 100644 --- a/problem/serializers.py +++ b/problem/serializers.py @@ -90,6 +90,12 @@ class BaseProblemSerializer(serializers.ModelSerializer): tags = serializers.SlugRelatedField(many=True, slug_field="name", read_only=True) created_by = UsernameSerializer() + def get_public_template(self, obj): + ret = {} + for lang, code in obj.template.items(): + ret[lang] = parse_problem_template(code)["template"] + return ret + class ProblemAdminSerializer(BaseProblemSerializer): class Meta: @@ -98,13 +104,7 @@ class ProblemAdminSerializer(BaseProblemSerializer): class ProblemSerializer(BaseProblemSerializer): - template = serializers.SerializerMethodField() - - def get_template(self, obj): - ret = {} - for lang, code in obj.template.items(): - ret[lang] = parse_problem_template(code)["template"] - return ret + template = serializers.SerializerMethodField("get_public_template") class Meta: model = Problem @@ -113,6 +113,8 @@ class ProblemSerializer(BaseProblemSerializer): class ProblemSafeSerializer(BaseProblemSerializer): + template = serializers.SerializerMethodField("get_public_template") + class Meta: model = Problem exclude = ("test_case_score", "test_case_id", "visible", "is_public",