From d3484c57bf65cf6b5ece07cd8a5b4858a94dbab9 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Sun, 12 Oct 2025 12:18:03 +0800 Subject: [PATCH] fix --- problem/serializers.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/problem/serializers.py b/problem/serializers.py index 964c3b7..1f21661 100644 --- a/problem/serializers.py +++ b/problem/serializers.py @@ -145,6 +145,8 @@ class ProblemAdminListSerializer(BaseProblemSerializer): class ProblemSerializer(BaseProblemSerializer): template = serializers.SerializerMethodField("get_public_template") + mermaid_code = serializers.SerializerMethodField() + flowchart_data = serializers.SerializerMethodField() class Meta: model = Problem @@ -156,6 +158,18 @@ class ProblemSerializer(BaseProblemSerializer): "answers", ) + def get_mermaid_code(self, obj): + # 当 allow_flowchart 为 True 时,不返回 mermaid_code + if obj.allow_flowchart: + return None + return obj.mermaid_code + + def get_flowchart_data(self, obj): + # 当 allow_flowchart 为 True 时,不返回 flowchart_data + if obj.allow_flowchart: + return None + return obj.flowchart_data + class ProblemListSerializer(BaseProblemSerializer): class Meta: @@ -176,6 +190,8 @@ class ProblemListSerializer(BaseProblemSerializer): class ProblemSafeSerializer(BaseProblemSerializer): template = serializers.SerializerMethodField("get_public_template") + mermaid_code = serializers.SerializerMethodField() + flowchart_data = serializers.SerializerMethodField() class Meta: model = Problem @@ -191,6 +207,18 @@ class ProblemSafeSerializer(BaseProblemSerializer): "answers", ) + def get_mermaid_code(self, obj): + # 当 allow_flowchart 为 True 时,不返回 mermaid_code + if obj.allow_flowchart: + return None + return obj.mermaid_code + + def get_flowchart_data(self, obj): + # 当 allow_flowchart 为 True 时,不返回 flowchart_data + if obj.allow_flowchart: + return None + return obj.flowchart_data + class ContestProblemMakePublicSerializer(serializers.Serializer): id = serializers.IntegerField() display_id = serializers.CharField(max_length=32)