@yuretzgt

Django Admin — как оптимизировать изображение при загрузке?

Задача простая: админ загружает через форму много изображений, который могут быть невероятно большими. Мне нужно "на лету" уменьшить размер, отконвертировать в JPEG и изменить качество чтобы картинка не занимала много места. Перекопал много всего, в том числе англоязычного - ничего на Django 3 не работает.

from django.db import models

def Service_Block_Photo_Name(instance, filename):
    return 'service_block/{0}.jpg'.format(instance.id)

class Service_Block_Photo(models.Model):
    def save(self, *args, **kwargs):
        if self.photo_number is None:
            print(self.service_block_id)
            try:
                current_max_block = Service_Block_Photo.objects.filter(service_block_id=self.service_block_id).order_by("-photo_number")[0]
                current_max_number = int(current_max_block.photo_number)+1
            except:
                current_max_number = 1
            self.photo_number = current_max_number
        ###
        ### тут видимо нужен блок изменяющий изображение BLOCK_IMAGE
        ###
        super(Service_Block_Photo, self).save(*args, **kwargs)

    service_block       = models.ForeignKey('Service_Block', on_delete=models.PROTECT)
    photo_number        = models.SmallIntegerField(verbose_name="Номер", blank=True)
    name_short          = models.CharField(max_length=100, verbose_name="Короткое название")
    name_full           = models.CharField(max_length=300, verbose_name="Длинное название", blank=True)
    block_image         = models.ImageField(upload_to=Service_Block_Photo_Name, null=True, blank=True, verbose_name="Изображение")
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@bacon
Гугл, "django resize image" ну или сразу https://pillow.readthedocs.io/en/stable/handbook/t...
Так что, хз чё вы копали, инфы дофига, от руками до готовых батареек.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы