добавил избранные треки
This commit is contained in:
parent
9f0fe06142
commit
64f23118cd
|
|
@ -1,4 +1,5 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from account.models import MyUser
|
||||||
|
|
||||||
class Song(models.Model):
|
class Song(models.Model):
|
||||||
azura_id = models.CharField('ID трека с Азуры', max_length=255)
|
azura_id = models.CharField('ID трека с Азуры', max_length=255)
|
||||||
|
|
@ -10,3 +11,9 @@ class Song(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.artist} - {self.title}"
|
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 rest_framework import serializers
|
||||||
from .models import Song
|
from .models import Song, FavoriteSong
|
||||||
|
|
||||||
class SongSerializer(serializers.ModelSerializer):
|
class SongSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Song
|
model = Song
|
||||||
fields = ('id', 'azura_id', 'title', 'artist', 'album', 'genre', 'art')
|
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.response import Response
|
||||||
from rest_framework.decorators import action
|
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 .schemas import SongSchema
|
from .schemas import SongSchema
|
||||||
from .models import Song
|
from .models import Song
|
||||||
|
|
@ -19,6 +20,6 @@ class SongViewSet(ViewSet):
|
||||||
serializer = SongSerializer(data=request.data)
|
serializer = SongSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
track_id = serializer.data['id']
|
||||||
else:
|
track = get_object_or_404(Song, pk=track_id)
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(f"{track}", status=status.HTTP_201_CREATED)
|
||||||
Loading…
Reference in New Issue