This commit is contained in:
2025-10-12 12:18:03 +08:00
parent dbbe38381a
commit d3484c57bf

View File

@@ -145,6 +145,8 @@ class ProblemAdminListSerializer(BaseProblemSerializer):
class ProblemSerializer(BaseProblemSerializer): class ProblemSerializer(BaseProblemSerializer):
template = serializers.SerializerMethodField("get_public_template") template = serializers.SerializerMethodField("get_public_template")
mermaid_code = serializers.SerializerMethodField()
flowchart_data = serializers.SerializerMethodField()
class Meta: class Meta:
model = Problem model = Problem
@@ -156,6 +158,18 @@ class ProblemSerializer(BaseProblemSerializer):
"answers", "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 ProblemListSerializer(BaseProblemSerializer):
class Meta: class Meta:
@@ -176,6 +190,8 @@ class ProblemListSerializer(BaseProblemSerializer):
class ProblemSafeSerializer(BaseProblemSerializer): class ProblemSafeSerializer(BaseProblemSerializer):
template = serializers.SerializerMethodField("get_public_template") template = serializers.SerializerMethodField("get_public_template")
mermaid_code = serializers.SerializerMethodField()
flowchart_data = serializers.SerializerMethodField()
class Meta: class Meta:
model = Problem model = Problem
@@ -191,6 +207,18 @@ class ProblemSafeSerializer(BaseProblemSerializer):
"answers", "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): class ContestProblemMakePublicSerializer(serializers.Serializer):
id = serializers.IntegerField() id = serializers.IntegerField()
display_id = serializers.CharField(max_length=32) display_id = serializers.CharField(max_length=32)