Почему shutil не копирует образ django
Я хочу скопировать изображение из одного экземпляра модели Django в другой, копируя фактический файл с помощью shutil. Я знаю, что state.image = self.image достаточно для доступа к изображению, но мне нужна физическая копия файла с новым именем
У меня такой код:
original = os.path.join(settings.MEDIA_ROOT, self.image.name)
target = os.path.join(settings.MEDIA_ROOT, self.image.path.split('.')[1] + '_' + str(state.pk) + '.png')
shutil.copyfile(original, target)
content = urllib.urlretrieve(target)
state.image.save(self.image.path.split('/')[-1], File(open(content[0])), save=True)
state.save()
Выдает такую ошибку:
celery_1 | File "/app/state/models/bills/change_coat.py", line 79, in do_bill
celery_1 | shutil.copyfile(original, target)
celery_1 | File "/usr/local/lib/python3.9/shutil.py", line 264, in copyfile
celery_1 | with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
celery_1 | FileNotFoundError: [Errno 2] No such file or directory: '/app/media/img/state_avatars/file.jpg'
Что не так с кодом?