diff --git a/server/proj/audio/serializers.py b/server/proj/audio/serializers.py index 45ee1fc..751389f 100644 --- a/server/proj/audio/serializers.py +++ b/server/proj/audio/serializers.py @@ -7,17 +7,15 @@ class SongSerializer(serializers.ModelSerializer): fields = ('id', 'unique_id', 'azura_id', 'title', 'artist', 'album', 'genre', 'art') class FavoriteSongSerializer(serializers.ModelSerializer): - song = serializers.SerializerMethodField() + class Meta: model = FavoriteSong fields = ('id', 'song', 'user') - def get_song(self, favorite_song): - song = Song.objects.get(id=favorite_song.song_id) - return SongSerializer(song, many=True).data - """ def to_representation(self, instance): + + def to_representation(self, instance): rep = super().to_representation(instance) rep["song"] = SongSerializer( instance.song).data - return rep """ + return rep diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index a9c23bb..3e83339 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -19,8 +19,9 @@ class SongViewSet(ViewSet): } def list(self, request): user_pk = request.user.pk - queryset = get_list_or_404(FavoriteSong, user=user_pk) - serializer = FavoriteSongSerializer(queryset, many=True) + songs_pk = [i.pk for i in get_list_or_404(FavoriteSong, user=user_pk)] + queryset = Song.objects.filter(id__in = songs_pk) + serializer = SongSerializer(queryset, many=True) return Response(serializer.data) def retrieve(self, request, pk=None):