Newer
Older
Eliot Berriot
committed
from rest_framework import serializers
from taggit.models import Tag
from funkwhale_api.music.serializers import TrackSerializerNested
from . import models
class PlaylistTrackSerializer(serializers.ModelSerializer):
track = TrackSerializerNested()
class Meta:
model = models.PlaylistTrack
fields = ('id', 'track', 'playlist', 'position')
class PlaylistTrackCreateSerializer(serializers.ModelSerializer):
class Meta:
model = models.PlaylistTrack
Eliot Berriot
committed
fields = ('id', 'track', 'playlist', 'index')
Eliot Berriot
committed
def validate_playlist(self, value):
existing = value.playlist_tracks.count()
if existing >= settings.PLAYLISTS_MAX_TRACKS:
raise serializers.ValidationError(
'Playlist has reached the maximum of {} tracks'.format(
settings.PLAYLISTS_MAX_TRACKS))
return value
Eliot Berriot
committed
class PlaylistSerializer(serializers.ModelSerializer):
class Meta:
model = models.Playlist
fields = ('id', 'name', 'privacy_level', 'creation_date')
read_only_fields = ['id', 'creation_date']