This commit is contained in:
parent 4cceef61f8
commit c0e5b154f8
3 changed files with 9 additions and 10 deletions

View File

@ -1,5 +1,6 @@
from django.db import models from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator from django.core.validators import MinValueValidator, MaxValueValidator
from .validators import validate_image_size
import logging import logging
logger = logging.getLogger("root") logger = logging.getLogger("root")
@ -68,15 +69,7 @@ class ClickableArea(models.Model):
Element3D, Element3D,
on_delete=models.PROTECT, on_delete=models.PROTECT,
) )
image = models.ImageField('Картинка', upload_to='images', blank=True, null=True) image = models.ImageField(upload_to='images/', validators=[validate_image_size], 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} пикселей. '}
# )
def __str__(self): def __str__(self):
return self.name return self.name

View File

@ -25,6 +25,6 @@ class Scene3DSerializer(serializers.ModelSerializer):
class ClickableAreaSerializer(serializers.ModelSerializer): class ClickableAreaSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = ClickableArea model = ClickableArea
fields = "__all__" fields = ['image']

View File

@ -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")