29 lines
822 B
Python
29 lines
822 B
Python
|
from django.core.exceptions import ValidationError
|
||
|
from django.utils.deconstruct import deconstructible
|
||
|
|
||
|
|
||
|
@deconstructible
|
||
|
class MaxFileSizeValidator:
|
||
|
"""
|
||
|
Reject all the files stored in a FileField (or ImageField) that are too heavy.
|
||
|
The size limit is given in Kio.
|
||
|
"""
|
||
|
|
||
|
def __init__(self, size_limit):
|
||
|
self.size_limit = size_limit
|
||
|
|
||
|
def __call__(self, value):
|
||
|
if value.size > self.size_limit * 1024:
|
||
|
raise ValidationError(
|
||
|
"La taille du fichier doit être inférieure à {} Kio".format(
|
||
|
self.size_limit
|
||
|
),
|
||
|
code="file_too_big",
|
||
|
)
|
||
|
|
||
|
def __eq__(self, other):
|
||
|
return (
|
||
|
isinstance(other, MaxFileSizeValidator)
|
||
|
and self.size_limit == other.size_limit
|
||
|
)
|