Newer
Older
from django.core import exceptions
from django.utils.deconstruct import deconstructible
from django.utils.translation import ugettext_lazy as _
@deconstructible
class FileSizeValidator():
size_limit = 5242880 # 5MB - 5242880
message = _('Too big file. %(size)d')
code = 'invalid'
def __init__(self, size_limit=None, message=None, code=None):
if size_limit is not None:
self.size_limit = size_limit
if message is not None:
self.message = message
if code is not None:
self.code = code
def __call__(self, file):
if file.size > self.size_limit:
raise exceptions.ValidationError(
self.message,
code=self.code,
params={'size': file.size}
)