from rest_framework import viewsets from radio.models import Album, Artist, Game, Song from ..permissions import IsAdminOrReadOnly from ..serializers.radio import (AlbumSerializer, ArtistSerializer, GameSerializer, SongSerializer, SongCreateSerializer) class AlbumViewSet(viewsets.ModelViewSet): permission_classes = [IsAdminOrReadOnly] queryset = Album.objects.all() serializer_class = AlbumSerializer class ArtistViewSet(viewsets.ModelViewSet): permission_classes = [IsAdminOrReadOnly] queryset = Artist.objects.all() serializer_class = ArtistSerializer class GameViewSet(viewsets.ModelViewSet): permission_classes = [IsAdminOrReadOnly] queryset = Game.objects.all() serializer_class = GameSerializer class SongViewSet(viewsets.ModelViewSet): permission_classes = [IsAdminOrReadOnly] queryset = Song.objects.all() serializer_class = SongSerializer def get_serializer_class(self): ''' Choose a different serializer based on what action is chosen. (Thanks to https://stackoverflow.com/questions/22616973/) ''' if self.action == 'create': return SongCreateSerializer return SongSerializer