new
All checks were successful
Deploy to Server / deploy (push) Successful in 32s

This commit is contained in:
jeremygan2021
2026-03-22 22:04:13 +08:00
parent 2e05322909
commit 2104e7b7dc
8 changed files with 525 additions and 112 deletions

View File

@@ -1,6 +1,7 @@
from rest_framework import serializers
from .models import Competition, CompetitionEnrollment, ScoreDimension, Project, ProjectFile, Score, Comment
from shop.serializers import WeChatUserSerializer
import uuid
class ScoreDimensionSerializer(serializers.ModelSerializer):
class Meta:
@@ -53,7 +54,9 @@ class ProjectFileSerializer(serializers.ModelSerializer):
return value
def create(self, validated_data):
from django.conf import settings
file_obj = validated_data.get('file')
if file_obj:
ext = file_obj.name.split('.')[-1].lower() if '.' in file_obj.name else ''
if ext in ['ppt', 'pptx']:
@@ -69,6 +72,22 @@ class ProjectFileSerializer(serializers.ModelSerializer):
if not validated_data.get('name'):
validated_data['name'] = file_obj.name
try:
from ai_services.services import AliyunTingwuService
service = AliyunTingwuService()
if service.bucket:
project = validated_data.get('project')
file_name = f"competitions/projects/{project.id}/{uuid.uuid4()}.{ext}"
oss_url = service.upload_to_oss(file_obj, file_name, day=30)
validated_data['file_url'] = oss_url
validated_data['file'] = None
print(f"OSS upload success: {oss_url}")
else:
print("OSS bucket is None, OSS not configured properly")
except Exception as e:
print(f"OSS upload failed in serializer: {e}")
return super().create(validated_data)
class ProjectSerializer(serializers.ModelSerializer):