videoflix/backend/video_app/serializer.py

25 lines
No EOL
954 B
Python

from rest_framework import serializers
from video_app.class_assets import VIDEO_GENRES
from .models import Video
class VideoSerializer(serializers.ModelSerializer):
class Meta:
model = Video
fields = "__all__"
class VideoUploadSerializer(serializers.ModelSerializer):
class Meta:
model = Video
fields = ['title', 'description', 'genre', 'file_path']
file_path = serializers.FileField(write_only=True)
genre = serializers.ChoiceField(choices=VIDEO_GENRES, required=True)
title = serializers.CharField(required=True)
description = serializers.CharField(required=True)
def validate_file_path(self, value):
if not value.name.endswith('.mp4'):
raise serializers.ValidationError("Invalid file type. Only .mp4 files are allowed.")
if value.size > 20 * 1024 * 1024:
raise serializers.ValidationError("File size exceeds the allowed limit of 20MB.")
return value