티스토리 뷰

# 프로필 정보
# StringRelatedField
class MovieSerializer(serializers.ModelSerializer):
    class Meta:
        model = Movie
        fields = '__all__'

class ProfileSerializer(serializers.ModelSerializer):
    # bookmarked_movies = MovieSerializer(many=True) 
    followings = serializers.StringRelatedField(many=True)
    followers = serializers.StringRelatedField(many=True)
    followings_count = serializers.IntegerField(source='followings.count', read_only=True) 
    followers_count = serializers.IntegerField(source='followers.count', read_only=True)

    class Meta:
        model = get_user_model()
        fields = ('username', 'followings_count','followings','followers_count', 'followers','bookmarked_movies', 'id')

    # bookmarked_movies = MovieSerializer(many=True) 

 

이 코드가 없으면 bookmarked_serializers 에는 '11' 이 출력된다.

그런데 저 코드가 있으면 bookmakred_serilizers 에는 id가 11인 영화 정보가 모두 출력된다.

 

즉 '11' 은 단순한 id값이 아니고 그 정보를 모두 담고있다고 보아야 하고

그것이 Serializer를 만나면 해당 Id값을 지닌 모델을 참조하여 정보를 Json 형태로 출력하게 되는 것이다.

 

댓글