from rest_framework import serializers from apps.course.models import Lesson, Participant, LessonCompletion from apps.quiz.serializers import QuizListSerializer class LessonSerializer(serializers.ModelSerializer): is_complated = serializers.SerializerMethodField() quizs = serializers.SerializerMethodField() class Meta: model = Lesson fields = ['id', 'title', 'priority', 'is_active', 'duration', 'content_type', 'content_file', 'video_link', 'is_complated', 'quizs'] def get_is_complated(self, obj): request = self.context.get('request') if not request or not request.user.is_authenticated: return False user = request.user is_participant = Participant.objects.filter( student=user, course=obj.course ).exists() if not is_participant: return False return LessonCompletion.objects.filter( student=user, lesson=obj ).exists() def get_quizs(self, obj): quizzes = obj.quizzes.all() # استفاده از related_name 'quizzes' برای دسترسی به کوییزهای درس if quizzes.exists(): return QuizListSerializer(quizzes, many=True, context=self.context).data return None