Как использовать 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()