Как проверить длину и высоту загружаемого изображения?

В Django для проверки длины и высоты загружаемого изображения можно использовать библиотеку Pillow, которая является стандартной библиотекой для обработки изображений в Django.

Перед началом работы с Pillow в Django, убедитесь, что у вас установлена библиотека Pillow. Если она не установлена, вы можете установить ее с помощью менеджера пакетов pip:

pip install pillow

После установки Pillow добавьте его в файл настроек Django (settings.py):

INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles', # если она не указана
    'django.contrib.contenttypes',
    ...
]

Далее, у вас должен быть указан статический URL и путь в настройках Django:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Затем, вы можете создать функцию для проверки размеров изображения:

from PIL import Image

def image_size_validator(image):
    img = Image.open(image)
    width, height = img.size

    if width > 1000 or height > 1000:
        raise ValidationError("Максимальный размер изображения - 1000x1000 пикселей.")

Эта функция открывает изображение с помощью Pillow и получает его размеры. Затем она сравнивает размеры с заданными значениями (в данном случае 1000x1000 пикселей) и вызывает исключение ValidationError, если размеры изображения превышают заданный предел.

Вы можете использовать эту функцию в валидаторе поля модели Django для проверки размеров изображения:

from django.core.exceptions import ValidationError
from django.db import models

def image_size_validator(image):
    img = Image.open(image)
    width, height = img.size

    if width > 1000 or height > 1000:
        raise ValidationError("Максимальный размер изображения - 1000x1000 пикселей.")

class MyModel(models.Model):
    image = models.ImageField(upload_to='images', validators=[image_size_validator])

В этом примере создается модель MyModel, которая имеет поле image, являющееся изображением. Валидатор image_size_validator применяется к этому полю для проверки размеров загруженного изображения.

Теперь, при попытке загрузить изображение с размерами, превышающими 1000x1000 пикселей, будет вызвано исключение ValidationError, и Django не позволит сохранить модель с таким изображением.

Также, не забудьте выполнить миграции после внесения изменений в модели:

python manage.py makemigrations
python manage.py migrate

Это подробное объяснение, как проверить длину и высоту загружаемого изображения в Django с использованием библиотеки Pillow.