from rest_framework import serializers from .models import TrainingRecord, TrainingScoreDetail class TrainingRecordListSerializer(serializers.ModelSerializer): user_name = serializers.CharField(source='user.real_name', read_only=True) case_title = serializers.CharField(source='case.title', read_only=True) teacher_name = serializers.CharField(source='teacher.real_name', read_only=True) class Meta: model = TrainingRecord fields = [ 'id', 'user', 'user_name', 'case', 'case_title', 'training_mode', 'case_type', 'teacher', 'teacher_name', 'start_time', 'end_time', 'duration_seconds', 'total_score', 'evaluation_level', 'status', 'created_at', 'updated_at' ] class TrainingRecordDetailSerializer(serializers.ModelSerializer): user_name = serializers.CharField(source='user.real_name', read_only=True) case_title = serializers.CharField(source='case.title', read_only=True) teacher_name = serializers.CharField(source='teacher.real_name', read_only=True) class Meta: model = TrainingRecord fields = '__all__' class TrainingRecordCreateSerializer(serializers.ModelSerializer): """训练记录创建序列化器""" class Meta: model = TrainingRecord fields = [ 'case', 'training_mode', 'case_type', 'teacher' ] def create(self, validated_data): validated_data['user'] = self.context['request'].user return super().create(validated_data) class TrainingScoreDetailSerializer(serializers.ModelSerializer): record_info = serializers.CharField(source='record', read_only=True) rule_dimension = serializers.CharField(source='rule.dimension', read_only=True) class Meta: model = TrainingScoreDetail fields = '__all__'