Почему функция пытается обработать не загруженное изображение?

Возник вопрос, почему функция не позволяет загрузить изображение, а пытается обработать его в момент создания объекта? и как это исправить хотелось бы узнать.

def image_as_base64(image_file, format='jpg'):
   
    if not os.path.isfile(image_file):
         return None
    
    encoded_string = ''
    with open(image_file, 'rb') as img_f:
        encoded_string = base64.b64encode(img_f.read()).decode('utf-8')
    return 'data:image/%s;base64,%s' % (format, encoded_string)



# Example Usage



class Post(models.Model):

    cover = models.ImageField()
    base_64 = models.TextField('base_64', blank=True, null=True)
    base_64_large = UnlimitedCharField(blank=True, null=True)
    
    
    def save(self, *args, **kwargs):
        print(image_as_base64(os.path.join(settings.MEDIA_ROOT , self.cover.path)))
        self.base_64 = image_as_base64(os.path.join(settings.MEDIA_ROOT , self.cover.path))
        self.base_64_large = image_as_base64(os.path.join(settings.MEDIA_ROOT , self.cover.path))
        super(Post, self).save(*args, **kwargs)

И если я прокомментирую

if not os.path.isfile(image_file):
         return None

Я получаю исключение типа: FileNotFoundError. Если изображение существует в папке, функция работает правильно

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