Как получить атрибут класса сериализатора в DRF?

У меня есть класс сериализатора CourseSerializer. В курсе может быть несколько групп, уроков и т.д. Код для сериализатора:

class CourseSerializer(serializers.ModelSerializer):

    lessons = MiniLessonSerializer(many=True, read_only=True)
    lessons_count = serializers.SerializerMethodField(read_only=True)
    students_count = serializers.SerializerMethodField(read_only=True)
    groups_filled_percent = serializers.SerializerMethodField(read_only=True)
    demand_course_percent = serializers.SerializerMethodField(read_only=True)

    def get_lessons_count(self, obj) -> int:
        return obj.lessons.count()

    def get_students_count(self, obj) -> int:
        amount = Subscription.objects.filter().count()
        return amount
    
    def get_groups_filled_percent(self, obj) -> int:
        counts = [group.users.count() for group in obj.groups.all()]
        return ((sum(counts) / len(counts)) / 30) * 100
     
    def get_demand_course_percent(self, obj) -> int:
        users = CustomUser.objects.all().count()
        students = Subscription.objects.filter().count()
        return (students / users) * 100

Как вы видите, у сериализатора есть вычисляемые атрибуты, такие как lessons_count, students_count и т.д.. Вопрос в том, как я могу получить один из этих атрибутов в методе сериализатора, например:

def get_demand_course_percent(self, obj) -> int:
    users = CustomUser.objects.all().count()
    return (self.students_count / users) * 100_

Если я делаю это явно, то выдается ошибка Attribute, что в классе сериализатора нет такого атрибута

А как насчет реализации метода в виде вызова?

def get_demand_course_percent(self, obj) -> int:
    users = CustomUser.objects.all().count()
    return (self.get_students_count(obj=None) / users) * 100_
Вернуться на верх