Как задать размер изображения в мегабайтах для "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