tingwu_new
All checks were successful
Deploy to Server / deploy (push) Successful in 19s

This commit is contained in:
jeremygan2021
2026-03-11 22:15:12 +08:00
parent 758eee8ac6
commit cb10c42d11
3 changed files with 21 additions and 10 deletions

View File

@@ -15,11 +15,14 @@ class AIEvaluationSerializer(serializers.ModelSerializer):
class TranscriptionTaskSerializer(serializers.ModelSerializer):
ai_evaluations = AIEvaluationSerializer(many=True, read_only=True)
project_title = serializers.CharField(source='project.title', read_only=True)
class Meta:
model = TranscriptionTask
fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations']
read_only_fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations']
fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations', 'project', 'project_title']
read_only_fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations', 'project_title']
class TranscriptionUploadSerializer(serializers.Serializer):
file = serializers.FileField(help_text="上传的音频文件")
file = serializers.FileField(help_text="上传的音频文件", required=False)
file_url = serializers.URLField(help_text="音频文件的URL地址", required=False)
project_id = serializers.IntegerField(help_text="关联的参赛项目ID", required=False)

View File

@@ -82,6 +82,7 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
"""
file_obj = request.FILES.get('file')
file_url = request.data.get('file_url')
project_id = request.data.get('project_id')
if not file_obj and not file_url:
return Response({'error': '请提供文件或文件URL'}, status=status.HTTP_400_BAD_REQUEST)
@@ -104,10 +105,17 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
oss_url = file_url
# 2. 创建数据库记录
task_record = TranscriptionTask.objects.create(
file_url=oss_url,
status=TranscriptionTask.Status.PENDING
)
task_data = {
'file_url': oss_url,
'status': TranscriptionTask.Status.PENDING
}
if project_id:
try:
task_data['project_id'] = int(project_id)
except (ValueError, TypeError):
pass # Ignore invalid project_id
task_record = TranscriptionTask.objects.create(**task_data)
# 3. 调用听悟接口创建任务
try:

View File

@@ -59,11 +59,11 @@ class CompetitionEnrollmentAdmin(ModelAdmin):
@admin.register(Project)
class ProjectAdmin(ModelAdmin):
list_display = ['title', 'competition', 'contestant', 'status', 'final_score', 'created_at']
list_display = ['id', 'title', 'competition', 'contestant', 'status', 'final_score', 'created_at']
list_filter = ['competition', 'status']
search_fields = ['title', 'contestant__user__nickname']
search_fields = ['id', 'title', 'contestant__user__nickname']
inlines = [ProjectFileInline]
readonly_fields = ['final_score']
readonly_fields = ['id', 'final_score']
fieldsets = (
('基本信息', {