Вот несколько методов, которые можно использовать для проверки расширений файлов в Django:
- Использование встроенных валидаторов Django: Django предоставляет несколько встроенных валидаторов, которые вы можете использовать для проверки расширений файлов. Вы можете импортировать и использовать класс
FileExtensionValidator
изdjango.core.validators
, чтобы указать разрешенные расширения файлов для поля файла в вашей модели Django.
Пример:
from django.core.validators import FileExtensionValidator
class MyModel(models.Model):
file = models.FileField(upload_to='uploads/', validators=[FileExtensionValidator(allowed_extensions=['pdf', 'doc', 'txt'])])
- Пользовательская проверка с помощью регулярных выражений. Вы можете создать собственную логику проверки, используя регулярные выражения для проверки расширения файла. В методе очистки формы или модели извлеките расширение файла из имени загруженного файла и сравните его с желаемыми расширениями, используя шаблон регулярного выражения.
Пример:
import re
class MyForm(forms.Form):
file = forms.FileField()
def clean_file(self):
file = self.cleaned_data.get('file')
if file:
filename = file.name
extension = re.findall(r'\.(\w+)$', filename)[-1]
allowed_extensions = ['pdf', 'doc', 'txt']
if extension not in allowed_extensions:
raise forms.ValidationError("Invalid file extension.")
return file
- Использование сторонних библиотек. Вы также можете использовать сторонние библиотеки, такие как
django-extensions
илиdjango-mimefile
, для проверки расширения файла. Эти библиотеки предлагают дополнительные функции и гибкость для обработки загрузки и проверки файлов в Django.