feat: 移除轮播图管理,系列活动改卡片布局,课程描述限10行,首页配置优化
All checks were successful
Deploy to Server / deploy (push) Successful in 2m4s

This commit is contained in:
爽哒哒
2026-03-22 00:10:34 +08:00
parent b24bba3753
commit 21f892fdf6
11 changed files with 188 additions and 417 deletions

View File

@@ -1,6 +1,6 @@
from rest_framework import serializers
from django.conf import settings
from .models import Competition, CompetitionEnrollment, ScoreDimension, Project, ProjectFile, Score, Comment, HomePageConfig, CarouselItem
from .models import Competition, CompetitionEnrollment, ScoreDimension, Project, ProjectFile, Score, Comment, HomePageConfig
from shop.serializers import WeChatUserSerializer
@@ -11,41 +11,16 @@ def _media_url(file_field):
return None
class CarouselItemSerializer(serializers.ModelSerializer):
display_image = serializers.SerializerMethodField()
class Meta:
model = CarouselItem
fields = ['id', 'carousel_type', 'image', 'image_url', 'display_image',
'title', 'subtitle', 'status', 'status_color', 'date', 'location',
'order', 'is_active']
def get_display_image(self, obj):
return _media_url(obj.image) or obj.image_url
class HomePageConfigSerializer(serializers.ModelSerializer):
display_banner = serializers.SerializerMethodField()
carousel1_items = serializers.SerializerMethodField()
carousel2_items = serializers.SerializerMethodField()
class Meta:
model = HomePageConfig
fields = ['id', 'banner_image', 'banner_image_url', 'display_banner',
'main_title', 'carousel1_title', 'carousel2_title',
'organizer', 'undertaker', 'carousel1_items', 'carousel2_items']
'main_title', 'organizer', 'undertaker']
def get_display_banner(self, obj):
return _media_url(obj.banner_image) or obj.banner_image_url
def get_carousel1_items(self, obj):
items = CarouselItem.objects.filter(carousel_type='carousel1', is_active=True)
return CarouselItemSerializer(items, many=True, context=self.context).data
def get_carousel2_items(self, obj):
items = CarouselItem.objects.filter(carousel_type='carousel2', is_active=True)
return CarouselItemSerializer(items, many=True, context=self.context).data
class ScoreDimensionSerializer(serializers.ModelSerializer):
class Meta: