diff --git a/server/proj/audio/models.py b/server/proj/audio/models.py index 924f24b..558a567 100644 --- a/server/proj/audio/models.py +++ b/server/proj/audio/models.py @@ -1,4 +1,5 @@ from django.db import models +from account.models import MyUser class Song(models.Model): azura_id = models.CharField('ID трека с Азуры', max_length=255) @@ -10,3 +11,9 @@ class Song(models.Model): def __str__(self): return f"{self.artist} - {self.title}" + +class FavoriteSong(models.Model): + song = models.ForeignKey(Song, verbose_name='Трек', on_delete=models.CASCADE, null=True, blank=True) + user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True) + def __str__(self): + return f"{self.user.first_name} {self.user.last_name} - {self.song.title}" diff --git a/server/proj/audio/serializers.py b/server/proj/audio/serializers.py index d12686a..d0dd429 100644 --- a/server/proj/audio/serializers.py +++ b/server/proj/audio/serializers.py @@ -1,7 +1,12 @@ from rest_framework import serializers -from .models import Song +from .models import Song, FavoriteSong class SongSerializer(serializers.ModelSerializer): class Meta: model = Song fields = ('id', 'azura_id', 'title', 'artist', 'album', 'genre', 'art') + +class FavoriteSongSerializer(serializers.ModelSerializer): + class Meta: + model = FavoriteSong + fields = ('id', 'song', 'user') diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 0fceaa0..d6649cd 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -3,6 +3,7 @@ from rest_framework.viewsets import ViewSet from rest_framework.response import Response from rest_framework.decorators import action from rest_framework import status +from django.shortcuts import get_object_or_404 from .schemas import SongSchema from .models import Song @@ -19,6 +20,6 @@ class SongViewSet(ViewSet): serializer = SongSerializer(data=request.data) if serializer.is_valid(): serializer.save() - return Response(serializer.data, status=status.HTTP_201_CREATED) - else: - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) \ No newline at end of file + track_id = serializer.data['id'] + track = get_object_or_404(Song, pk=track_id) + return Response(f"{track}", status=status.HTTP_201_CREATED) \ No newline at end of file