From c0e5b154f80d9f8bef9c40fbe7f7aceddd75d2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B5=D0=BB=D0=B5=D0=BD=D1=81=D0=BA=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=90=D0=BD=D0=B0=D1=81=D1=82=D0=B0=D1=81=D0=B8=D1=8F=20=D0=9D?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B5=D0=B2=D0=BD=D0=B0?= Date: Mon, 1 Jul 2024 12:19:51 +0300 Subject: [PATCH] click --- back/object/models.py | 11 ++--------- back/object/serializers.py | 2 +- back/object/validators.py | 6 ++++++ 3 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 back/object/validators.py diff --git a/back/object/models.py b/back/object/models.py index bea9097..9238da3 100644 --- a/back/object/models.py +++ b/back/object/models.py @@ -1,5 +1,6 @@ from django.db import models from django.core.validators import MinValueValidator, MaxValueValidator +from .validators import validate_image_size import logging logger = logging.getLogger("root") @@ -68,15 +69,7 @@ class ClickableArea(models.Model): Element3D, on_delete=models.PROTECT, ) - image = models.ImageField('Картинка', upload_to='images', blank=True, null=True) - - # def image_size_validator_factory(min_w=600, min_h=600, field_name='image'): - # def validator(image): - # if image.width < min_w or image.height < min_h: - # raise ValidationError( - # {field_name: f'Размер картинки от {min_w}х{min_h} пикселей. '} - # ) - + image = models.ImageField(upload_to='images/', validators=[validate_image_size], blank=True, null=True) def __str__(self): return self.name diff --git a/back/object/serializers.py b/back/object/serializers.py index 3c40d60..8890b7d 100644 --- a/back/object/serializers.py +++ b/back/object/serializers.py @@ -25,6 +25,6 @@ class Scene3DSerializer(serializers.ModelSerializer): class ClickableAreaSerializer(serializers.ModelSerializer): class Meta: model = ClickableArea - fields = "__all__" + fields = ['image'] diff --git a/back/object/validators.py b/back/object/validators.py new file mode 100644 index 0000000..b294a99 --- /dev/null +++ b/back/object/validators.py @@ -0,0 +1,6 @@ +from django.core.exceptions import ValidationError + +def validate_image_size(image): + max_size = 2 * 1024 * 1024 # Максимальный размер файла в байтах (2MB) + if image.file.size > max_size: + raise ValidationError(f"Размер файла не должен превышать {max_size / (1024 * 1024)}MB") \ No newline at end of file