добавил избранные треки

This commit is contained in:
Mike0001-droid 2024-06-06 18:43:04 +05:00
parent 9f0fe06142
commit 64f23118cd
3 changed files with 17 additions and 4 deletions

View File

@ -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}"

View File

@ -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')

View File

@ -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)