добавил избранные треки
This commit is contained in:
parent
9f0fe06142
commit
64f23118cd
|
|
@ -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}"
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
track_id = serializer.data['id']
|
||||
track = get_object_or_404(Song, pk=track_id)
|
||||
return Response(f"{track}", status=status.HTTP_201_CREATED)
|
||||
Loading…
Reference in New Issue