比赛
All checks were successful
Deploy to Server / deploy (push) Successful in 25s

This commit is contained in:
jeremygan2021
2026-03-10 10:46:13 +08:00
parent 00389e0709
commit 724dd3857c
5 changed files with 98 additions and 2 deletions

View File

@@ -9,13 +9,20 @@ class ScoreDimensionSerializer(serializers.ModelSerializer):
class CompetitionSerializer(serializers.ModelSerializer):
score_dimensions = ScoreDimensionSerializer(many=True, read_only=True)
display_cover_image = serializers.SerializerMethodField()
class Meta:
model = Competition
fields = ['id', 'title', 'description', 'rule_description', 'condition_description',
'cover_image', 'start_time', 'end_time', 'status', 'is_active',
'cover_image', 'cover_image_url', 'display_cover_image',
'start_time', 'end_time', 'status', 'is_active',
'score_dimensions', 'created_at']
def get_display_cover_image(self, obj):
if obj.cover_image:
return obj.cover_image.url
return obj.cover_image_url
class CompetitionEnrollmentSerializer(serializers.ModelSerializer):
user = WeChatUserSerializer(read_only=True)
@@ -41,11 +48,13 @@ class ProjectFileSerializer(serializers.ModelSerializer):
class ProjectSerializer(serializers.ModelSerializer):
files = ProjectFileSerializer(many=True, read_only=True)
contestant_info = serializers.SerializerMethodField()
display_cover_image = serializers.SerializerMethodField()
class Meta:
model = Project
fields = ['id', 'competition', 'contestant', 'title', 'description', 'team_info',
'cover_image', 'status', 'final_score', 'files', 'contestant_info', 'created_at']
'cover_image', 'cover_image_url', 'display_cover_image',
'status', 'final_score', 'files', 'contestant_info', 'created_at']
read_only_fields = ['final_score', 'contestant']
def get_contestant_info(self, obj):
@@ -54,6 +63,11 @@ class ProjectSerializer(serializers.ModelSerializer):
"avatar_url": obj.contestant.user.avatar_url
}
def get_display_cover_image(self, obj):
if obj.cover_image:
return obj.cover_image.url
return obj.cover_image_url
class ScoreSerializer(serializers.ModelSerializer):
judge_name = serializers.CharField(source='judge.user.nickname', read_only=True)
dimension_name = serializers.CharField(source='dimension.name', read_only=True)