feat: 首页配置封面图上传预览,修复系列活动跳转,活动卡片样式优化
All checks were successful
Deploy to Server / deploy (push) Successful in 1m56s

This commit is contained in:
爽哒哒
2026-03-22 00:31:34 +08:00
parent 21f892fdf6
commit 96be8b9eee
6 changed files with 37 additions and 14 deletions

View File

@@ -7,12 +7,13 @@ from .models import Competition, CompetitionEnrollment, ScoreDimension, Project,
@admin.register(HomePageConfig)
class HomePageConfigAdmin(ModelAdmin):
list_display = ['id', 'main_title', 'organizer', 'undertaker', 'is_active']
list_display = ['id', 'main_title', 'organizer', 'undertaker', 'is_active', 'banner_preview']
list_editable = ['main_title', 'organizer', 'undertaker', 'is_active']
readonly_fields = ['banner_preview']
fieldsets = (
('封面图', {
'fields': ('banner_image', 'banner_image_url'),
'description': '首页标题下方的封面图可上传本地图片或填写URL'
'fields': ('banner_image', 'banner_image_url', 'banner_preview'),
'description': '首页标题下方的封面图可上传本地图片或填写URL,优先使用上传的图片'
}),
('标题设置', {
'fields': ('main_title',)
@@ -25,6 +26,18 @@ class HomePageConfigAdmin(ModelAdmin):
}),
)
@display(description="封面图预览")
def banner_preview(self, obj):
url = None
if obj.banner_image and obj.banner_image.name:
from django.conf import settings
url = settings.MEDIA_URL + obj.banner_image.name
elif obj.banner_image_url:
url = obj.banner_image_url
if url:
return format_html('<img src="{}" style="max-height:120px;max-width:300px;border-radius:6px;object-fit:cover;" />', url)
return "暂无图片"
class ScoreDimensionInline(admin.TabularInline):
model = ScoreDimension