Чтобы ограничить размер файла, вы можете сделать это на веб-сервере, а не в Django.
В качестве альтернативы, вы можете указать пользовательский обработчик файлов , с помощью которого вы можете вызватьошибка, если файл слишком велик:
from django.core.files.uploadhandler import TemporaryFileUploadHandler, StopUpload
class SizeLimitUploadHandler(TemporaryFileUploadHandler):
def new_file(self, field_name, file_name, content_type, content_length, charset):
if content_length > MAX_FILE_SIZE:
raise StopUpload(True)
Хотя это приведет к ошибке сброса соединения для остановки обработки большого файла.
Если вы хотите ограничить размер image , вы можете изменить размер изображения до его сохранения, как указано в файле readme:
Передав resize_source
Аргумент ThumbnailerImageField
, вы можете изменить размер исходного изображения до его сохранения:
class Profile(models.Model):
user = models.ForeignKey('auth.User')
avatar = ThumbnailerImageField(
upload_to='avatars',
resize_source=dict(size=(50, 50), crop='smart'),
)