mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-17 19:52:25 +03:00
Add support for allowed file extensions
This commit is contained in:
parent
21bb21b65b
commit
cf9fdb456e
|
@ -14,9 +14,9 @@ from django.conf import settings
|
|||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.core.exceptions import ValidationError as DjangoValidationError
|
||||
from django.core.validators import (
|
||||
EmailValidator, MaxLengthValidator, MaxValueValidator, MinLengthValidator,
|
||||
MinValueValidator, ProhibitNullCharactersValidator, RegexValidator,
|
||||
URLValidator
|
||||
EmailValidator, FileExtensionValidator, MaxLengthValidator,
|
||||
MaxValueValidator, MinLengthValidator, MinValueValidator,
|
||||
ProhibitNullCharactersValidator, RegexValidator, URLValidator
|
||||
)
|
||||
from django.forms import FilePathField as DjangoFilePathField
|
||||
from django.forms import ImageField as DjangoImageField
|
||||
|
@ -1516,9 +1516,18 @@ class FileField(Field):
|
|||
def __init__(self, **kwargs):
|
||||
self.max_length = kwargs.pop('max_length', None)
|
||||
self.allow_empty_file = kwargs.pop('allow_empty_file', False)
|
||||
allowed_extensions = kwargs.pop('allowed_extensions', None)
|
||||
assert allowed_extensions is None or isinstance(allowed_extensions, (list, tuple)), (
|
||||
'Invalid value for allowed_extensions. It must be either None or a list/tuple, but %s provided.'
|
||||
% (allowed_extensions.__name__ if inspect.isclass(
|
||||
allowed_extensions) else allowed_extensions.__class__.__name__)
|
||||
)
|
||||
if 'use_url' in kwargs:
|
||||
self.use_url = kwargs.pop('use_url')
|
||||
super().__init__(**kwargs)
|
||||
if allowed_extensions is not None:
|
||||
self.validators.append(
|
||||
FileExtensionValidator(allowed_extensions))
|
||||
|
||||
def to_internal_value(self, data):
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue
Block a user