Browse Source

feat: update CourseDetailSerializer to use SerializerMethodField for professor and add is_professor field

master
mortezaei 10 months ago
parent
commit
06a5cd5985
  1. 10
      apps/course/serializers/course.py

10
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():

Loading…
Cancel
Save