Django - Чтобы функция внутри функции представления автоматически возвращала ответ пользователю в случае ошибки?

Итак, у меня есть запрос на пост, который получает загруженное видео и затем проверяет его. В идеале я бы хотел, чтобы validate_video_upload() возвращал ответ 400, если размер видео превышает допустимый, а не выдавал ошибку валидации, потому что я хотел бы уведомить пользователя о том, что видео слишком большое. Как мне настроить его так, чтобы если validate_video_upload() вернет ответ, он просто вернул вызов со статусом и сообщением, а если ответа не будет, то он просто продолжит работу в обычном режиме?

View.py

def post(self, request):
    if 'video' in request.FILES.keys():
        vid = request.FILES.get('video')
        validate_video_upload(vid)

function.py

def validate_video_upload(file):
    if not is_valid_file_of_format(file._name, VALID_VIDEO_EXTENSIONS):
        raise ValidationError("Video file format is invalid")
    if file.size>2296000000:
        raise ValidationError("Maximum size allowed for a video is 287 mb")

Возможен вариант, при котором функция validate_video_upload будет возвращать значение, указывающее на то, была ли загрузка файла успешной или нет. Таким образом, ваше представление будет знать, следует ли ему возвращать ответ 400 или нет.

def validate_video_upload(file):
    if not is_valid_file_of_format(file._name, VALID_VIDEO_EXTENSIONS):
        return False
    if file.size>2296000000:
        return False
    return True
def post(self, request):
    if 'video' in request.FILES.keys():
        vid = request.FILES.get('video')
        valid_video = validate_video_upload(vid)
        if not valid_video:
            return HttpResponse(status=400)
        # functionality to upload a valid video here
        
Вернуться на верх