models.py
에서 likes
를
ManyToManyField
로 구성해서 모델을 받아온 뒤
db에 구성된 값들을 불러올 때,
id로 불러와지는 문제를 해결하기 위해
StringRelatedField(many=True)
를 사용한다.
class ArticleDetailSerializer(serializers.ModelSerializer):
likes = serializers.StringRelatedField(many=True)
이런식으로.
만약, 좋아요 한 유저 목록이 아니라
좋아요 한 숫자를 카운팅해서 데이터를 넘겨주고 싶다면
어떻게 해야할까?
class ArticleDetailSerializer(serializers.ModelSerializer):
likes_num = serializers.SerializerMethodField()
# 현재 게시글의 좋아요 갯수 들고오기
def get_likes_num(self, obj):
return obj.likes.count()
SerializerMethodField
를 사용해서 데이터를 들고온 뒤,
get_likes_num
함수에서 개체의 count
를 return
할 수 있게 해주면 된다!
참고로 id
값이 아닌 이메일 이름으로 보려면 이렇게 하면 된다.
class ArticleDetailSerializer(serializers.ModelSerializer):
likes_email = serializers.SerializerMethodField()
def get_likes_email(self, obj):
return obj.likes.email()
이런식으로 값을 들고오면 됨!