from rest_framework import serializers from progress.models import Progress, ProgressLesson class ProgressSerializer(serializers.ModelSerializer): lessons = serializers.SerializerMethodField() class Meta: model = Progress fields = ('lessons', 'course_token') @staticmethod def get_lessons(self): return [ProgressLessonSerializer(i).data for i in self.progresslesson_set.all()] class ProgressAnalyticSerializer(serializers.ModelSerializer): name = serializers.SerializerMethodField() email = serializers.SerializerMethodField() class Meta: model = Progress fields = ('name', 'email',) @staticmethod def get_name(self): return self.user.get_full_name() @staticmethod def get_email(self): return self.user.email class ProgressLessonSerializer(serializers.ModelSerializer): teacher = serializers.SerializerMethodField() class Meta: model = ProgressLesson exclude = ('id', 'progress') @staticmethod def get_teacher(self): return self.teacher.get_full_name()