Files
medical_training/apps/training/serializers.py
T

50 lines
1.8 KiB
Python
Raw Normal View History

2026-05-29 15:58:00 +08:00
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__'