Skip to content

Commit

Permalink
Add support for allowed file extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
amirhusein1996 committed Jan 16, 2024
1 parent 21bb21b commit 1805bb4
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion rest_framework/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from django.core.validators import (
EmailValidator, MaxLengthValidator, MaxValueValidator, MinLengthValidator,
MinValueValidator, ProhibitNullCharactersValidator, RegexValidator,
URLValidator
URLValidator, FileExtensionValidator
)
from django.forms import FilePathField as DjangoFilePathField
from django.forms import ImageField as DjangoImageField
Expand Down Expand Up @@ -1516,9 +1516,17 @@ 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:
Expand Down

0 comments on commit 1805bb4

Please sign in to comment.