Как узнать тип загружаемого файла в Django?

Есть форма в которой загружается какой-то файл. Требуется узнать тип загружаемого файла. Что-то типа:

if file.pdf:
   print("smth")

Как это сделать в Django?


Ответы (1 шт):

Автор решения: Иван Поленников

В Django есть валидатор:

from django.core.validators import FileExtensionValidator

С помощью него можно указывать, какие форматы можно загружать:

models.FileField(upload_to='foo/', validators =[FileExtensionValidator(allowed_extensions=['pdf'])])

Если посмотреть как он работает, то можно увидеть:

from pathlib import Path
[...]
extension = Path(value.name).suffix[1:].lower()

То есть достаточно просто передавать имя файла в класс Path и он будет возвращать тебе формат файла.:

>>> Path('file.pdf').suffix[1:].lower()
'pdf'

Ответ:

from pathlib import Path if Path('file.pdf').suffix[1:].lower() == 'pdf': print("smth")

→ Ссылка