ITRadio/server/proj/audio/serializers.py

48 lines
1.3 KiB
Python

from rest_framework import serializers
from .models import Song, FavoriteSong, PlayList, Podkast
class SongSerializer(serializers.ModelSerializer):
class Meta:
model = Song
fields = ('id', 'unique_id', 'azura_id', 'title', 'artist', 'album', 'genre', 'art')
class PlayListSerializer(serializers.ModelSerializer):
def validate(self, attrs):
if PlayList.objects.filter(
name=attrs.get('name'),
user=attrs.get('user')
).exists():
raise serializers.ValidationError(
{
'playlist': ['Данный плейлист уже существует']
})
return super().validate(attrs)
class Meta:
model = PlayList
fields = ('id', 'name', 'song', 'user', 'playlist_art')
def to_representation(self, instance):
rep = super().to_representation(instance)
rep["song"] = SongSerializer(
instance.song.all(), many=True).data
return rep
class FavoriteSongSerializer(serializers.ModelSerializer):
song = SongSerializer(many=True)
class Meta:
model = FavoriteSong
fields = '__all__'
class PodkastSerializer(serializers.ModelSerializer):
class Meta:
model = Podkast
fields = '__all__'