Как узнать тип загружаемого файла в 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")