добавил метод для удаления из избранного

This commit is contained in:
Mike0001-droid 2024-06-06 19:06:34 +05:00
parent be329fe92a
commit 7fb16f3989
2 changed files with 22 additions and 3 deletions

View File

@ -42,4 +42,14 @@ class SongSchema(AutoSchema):
schema=coreschema.String(description='Изображение трека') schema=coreschema.String(description='Изображение трека')
), ),
] ]
class DeleteSongSchema(AutoSchema):
def get_serializer_fields(self, path, method):
return [
coreapi.Field(
name='song_id',
location='form',
required=False,
schema=coreschema.Integer(description='ID трека')
),
]

View File

@ -5,8 +5,8 @@ from rest_framework.decorators import action
from rest_framework import status from rest_framework import status
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from .schemas import SongSchema from .schemas import SongSchema, DeleteSongSchema
from .models import Song from .models import Song, FavoriteSong
from .serializers import SongSerializer, FavoriteSongSerializer from .serializers import SongSerializer, FavoriteSongSerializer
class SongViewSet(ViewSet): class SongViewSet(ViewSet):
@ -30,4 +30,13 @@ class SongViewSet(ViewSet):
return Response(serializer_1.data, status=status.HTTP_201_CREATED) return Response(serializer_1.data, status=status.HTTP_201_CREATED)
else: else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
def delete_song(self, request):
song_id = request.data['track_id']
user_id = request.user.pk
item = FavoriteSong.objects.filter(song=song_id, user=user_id)
item.delete()
return Response(status=status.HTTP_202_ACCEPTED)