25 lines
No EOL
954 B
Python
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 |