Коррекция размера загружаемого изображения перед сохранением через скрипт
суть вопроса такова, при сохранении через записи в БД через скрипт изображение не обрезается перед сохранением, хотя при создании записи через панель админа все работает как надо. Ниже приложен код скрипта, а так же модель. Что я делаю не так?
population_script.py
def populate():
articles = [
{
'title': 'Что помешало экипажу Crew Dragon выйти из корабля?',
'text': 'Вчера, во время трансляции посадки американского космического корабля Crew Dragon, многие обратили внимание на заминку, которая возникла перед открытием бокового люка. Газоанализатор показал превышение концентрации тетраоксида азота — токсичного топливного компонента двигателей корабля. Астронавтам пришлось полчаса ждать чтобы химия выветрилась, а команда спасателей это время провела в противогазах.',
'image': 'dragon_crew.jpeg'
},
]
def add_article(title, text, image):
art = Article.objects.get_or_create(title=title, text=text, image=image)[0]
art.save()
for art in articles:
add_article(art['title'], art['text'], art['image'])
if __name__ == '__main__':
print('Starting DevBlog population script')
populate()
models.py
class Article(models.Model):
TITLE_MAX_LENGTH = 128
TEXT_MAX_LENGTH = 128
title = models.CharField(max_length=TITLE_MAX_LENGTH, blank=False, unique=True)
image = models.ImageField(blank=True)
text = models.CharField(max_length=TEXT_MAX_LENGTH, blank=False)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.title)
super(Article, self).save(*args, **kwargs)
img = Image.open(self.image.path)
if img.width > 400 or img.height > 300:
output_size = (400, 300)
img.thumbnail(output_size)
super(Article, self).save(*args, **kwargs)
def __str__(self):
return self.title