Как задать размер изображения в мегабайтах для "factroy.django.ImageField" ? Например, "my_img = ImageField(size=30)".

У меня есть модель Магазин

class Shop(models.Model):
    logo = models.ImageField("Logo", upload_to="logos/", blank=True, null=True)
    
    def save(self, *args, **kwargs):
        # condense logo if it's more than 30mb
        if self.logo:
            # instance = super().save(*args, **kwargs)
            logo_path = self.logo.path

            logo = Image.open(logo_path)
            logo_size = os.path.getsize(logo_path)  # in bytes
            thirty_mb = 30 * 1024 * 1024

            while logo_size > thirty_mb:
                logo = logo.convert("RGB")
                logo.save(
                    logo_path,
                    quality=60,
                    optimize=True,
                    format="JPEG",
                )
        return instance

И у меня есть эта фабрика для модели Shop

import factory
from api.v1.apps.shops.models.shops import Shop
from factory.django import DjangoModelFactory, ImageField

class ShopModelFactory(DjangoModelFactory):
    class Meta:
        model = Shop

    logo = ImageField()                     # what I have
    logo = ImageField(size_in_megabytes=30) # what I want

Что я точно хочу сделать, так это сказать ImageField сгенерировать img с заданным размером

Я просмотрел documentaino, но ничего не нашел https://factoryboy.readthedocs.io/en/stable/orms.html#factory.django.ImageField

Вернуться на верх