28 lines
822 B
Python
28 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
|
|
)
|