Skip to content
Snippets Groups Projects
validators.py 799 B
Newer Older
  • Learn to ignore specific revisions
  • 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}
                )