from rest_framework import serializers from .models import Video, Playlist, Category, TagToObject, PlaylistVideo class TagToObjectSerializer(serializers.ModelSerializer): id = serializers.CharField(source='tag.id') name = serializers.CharField(source='tag.name') class Meta: model = TagToObject fields = ['id', 'name'] class CategorySerializer(serializers.ModelSerializer): class Meta: model = Category fields = ['id', 'name'] class VideoSerializer(serializers.ModelSerializer): categories = CategorySerializer(many=True) tags = TagToObjectSerializer(many=True) class Meta: model = Video fields = [ 'id', 'title', 'slug', 'description', 's3_file', 'thumbnail', 'categories', 'tags', ] class PlaylistVideoSerializer(serializers.ModelSerializer): id = serializers.CharField(source='video.id') title = serializers.CharField(source='video.title') slug = serializers.CharField(source='video.slug') description = serializers.CharField(source='video.description') s3_file = serializers.CharField(source='video.s3_file') thumbnail = serializers.CharField(source='video.thumbnail') categories = CategorySerializer(source='video.categories', many=True) tags = TagToObjectSerializer(source='video.tags', many=True) class Meta: model = PlaylistVideo fields = [ 'id', 'title', 'slug', 'description', 's3_file', 'thumbnail', 'categories', 'tags', ] class PlaylistSerializer(serializers.ModelSerializer): video = PlaylistVideoSerializer(source='playlist_video', many=True) tags = TagToObjectSerializer(many=True) class Meta: model = Playlist fields = [ 'id', 'title', 'description', 'sort', 'type', 'mrss', 'json', 'video', 'tags', ]