50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
|
|
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__'
|