From 06a5cd59853d7e94ade7e62b7e5622ac06da8ebc Mon Sep 17 00:00:00 2001 From: mortezaei Date: Sun, 3 Aug 2025 23:41:31 +0330 Subject: [PATCH] feat: update CourseDetailSerializer to use SerializerMethodField for professor and add is_professor field --- apps/course/serializers/course.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/course/serializers/course.py b/apps/course/serializers/course.py index e64881f..76237ff 100644 --- a/apps/course/serializers/course.py +++ b/apps/course/serializers/course.py @@ -87,7 +87,7 @@ class CourseListSerializer(serializers.ModelSerializer): class CourseDetailSerializer(serializers.ModelSerializer): category = CourseCategorySerializer() - professor = UserProfileSerializer() + professor = serializers.SerializerMethodField() thumbnail = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField() access = serializers.SerializerMethodField() @@ -100,6 +100,7 @@ class CourseDetailSerializer(serializers.ModelSerializer): discount_percentage = serializers.SerializerMethodField() final_price = serializers.SerializerMethodField() is_free = serializers.SerializerMethodField() + is_professor = serializers.SerializerMethodField() class Meta: model = Course @@ -111,6 +112,7 @@ class CourseDetailSerializer(serializers.ModelSerializer): 'access', 'participant_count', 'professor', + 'is_professor', 'thumbnail', 'video_type', 'video_file', @@ -214,6 +216,12 @@ class CourseDetailSerializer(serializers.ModelSerializer): return False return True return False + + def get_professor(self, obj): + """Return the course professor's profile using UserProfileSerializer""" + if obj.professor: + return UserProfileSerializer(obj.professor, context=self.context).data + return None def get_is_professor(self, obj): if professor := self._get_authenticated_user():