написал новый сериализатор для избранных треков

This commit is contained in:
Mike0001-droid 2024-06-10 13:16:00 +05:00
parent 909ba66fce
commit d5cbcef753
2 changed files with 15 additions and 4 deletions

View File

@ -13,7 +13,18 @@ class FavoriteSongSerializer(serializers.ModelSerializer):
def to_representation(self, instance): def to_representation(self, instance):
rep = super().to_representation(instance) rep = super().to_representation(instance)
rep["songs"] = SongSerializer( rep["song"] = SongSerializer(
instance.song, many=True).data instance.song).data
return rep
class OnlyFavoriteSongSerializer(serializers.ModelSerializer):
class Meta:
model = FavoriteSong
fields = ('song')
def to_representation(self, instance):
rep = super().to_representation(instance)
rep["song"] = SongSerializer(
instance.song).data
return rep return rep

View File

@ -9,7 +9,7 @@ import requests
from .schemas import SongSchema, DeleteSongSchema from .schemas import SongSchema, DeleteSongSchema
from .models import Song, FavoriteSong from .models import Song, FavoriteSong
from .serializers import SongSerializer, FavoriteSongSerializer from .serializers import SongSerializer, FavoriteSongSerializer, OnlyFavoriteSongSerializer
class SongViewSet(ViewSet): class SongViewSet(ViewSet):
permission_classes_by_action = { permission_classes_by_action = {
@ -20,7 +20,7 @@ class SongViewSet(ViewSet):
def list(self, request): def list(self, request):
user_pk = request.user.pk user_pk = request.user.pk
queryset = get_list_or_404(FavoriteSong, user=user_pk) queryset = get_list_or_404(FavoriteSong, user=user_pk)
serializer = FavoriteSongSerializer(queryset, many=True) serializer = OnlyFavoriteSongSerializer(queryset, many=True)
return Response(serializer.data) return Response(serializer.data)
def retrieve(self, request, pk=None): def retrieve(self, request, pk=None):