Как использовать count() в сериализаторах?

Я пытаюсь получить количество лайков статьи, но проблема в том, что я сталкиваюсь с различными ошибками. Вот мой код:

class ArticleLikeSerializer(serializers.ModelSerializer):

    class Meta:
        model = ArticleLike
        fields = ('id',"author","article",'timestamp')

class ArticleSerializer(serializers.ModelSerializer):
    articlelikes_set = ArticleLikeSerializer(source='articlelikes',required=False,many=True)
    total_likes = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = Article
        fields = ('id','author','caption','total_likes','articlelikes_set')

    def get_total_likes(self, language):
        return articlelikes_set.count()

Вот моя ошибка:

name 'articlelikes_set' is not defined

Как я могу решить эту проблему?

language - это объект, который вы сериализуете, поэтому вы возвращаете:

class ArticleSerializer(serializers.ModelSerializer):
    # …

    def get_total_likes(self, language):
        return language.articlelikes.count()
Вернуться на верх