Проверка загружаемого файла на размер и формат

Загружаю изображение при помощи generics.ListCreateAPIView. Как лучше организовать проверку файла на размер и формат?

Если под форматом понимается тип файла, то это можно сделать с помощью валидатора на FileField. Например,

def is_json_file(value):
    if value.content_type != 'application/json' \
            or not value.name.endswith('.json'):
        raise forms.ValidationError(
            'Not a JSON file', code='content_type'
        )


class ImportJSONForm(forms.Form):
    content_json = forms.FileField(
        label='JSON contents',
        validators=[is_json_file]
    )

Ограничить размер загружаемых файлов можно с помощью настройки FILE_UPLOAD_MAX_MEMORY_SIZE.

Вернуться на верх