You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.1 KiB
27 lines
1.1 KiB
from django.contrib.auth import get_user_model
|
|
from rest_framework import serializers
|
|
|
|
from apps.account.serializers import UserProfileSerializer
|
|
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class ProfessorListSerializer(serializers.ModelSerializer):
|
|
course_count = serializers.IntegerField(read_only=True)
|
|
lesson_count = serializers.IntegerField(read_only=True)
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ['id', 'slug', 'fullname', 'experience_years', 'course_count', 'lesson_count']
|
|
|
|
|
|
class ProfessorDetailSerializer(UserProfileSerializer):
|
|
course_count = serializers.IntegerField(read_only=True)
|
|
lesson_count = serializers.IntegerField(read_only=True)
|
|
experience_years = serializers.IntegerField(read_only=True)
|
|
slug = serializers.CharField(read_only=True)
|
|
|
|
class Meta(UserProfileSerializer.Meta):
|
|
fields = UserProfileSerializer.Meta.fields + ['slug', 'experience_years', 'course_count', 'lesson_count']
|
|
read_only_fields = list(set(UserProfileSerializer.Meta.read_only_fields + ['slug', 'experience_years', 'course_count', 'lesson_count']))
|