Почему функция пытается обработать не загруженное изображение?
Возник вопрос, почему функция не позволяет загрузить изображение, а пытается обработать его в момент создания объекта? и как это исправить хотелось бы узнать.
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. Если изображение существует в папке, функция работает правильно