Я использую приведенный ниже код для изменения размера моих изображений, и он отлично работает. Однако, когда я иду, чтобы сделать другое занятие. Пример добавления нового сообщения и т. Д. Я получаю сообщение об ошибке
FileNotFoundError в / proof / new_proof / i_climbed_this_mountain
[Errno 2] Нет такого файла или каталога: '/home/samir/Samir/do_tasks/src/Task/media/profile_images/admin_big_XkWnEVw_VvyghrW.jpg'
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_image = models.ImageField(upload_to='profile_images/', default='', blank=True, null=True)
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
im = Image.open(self.profile_image)
output = BytesIO()
basewidth = 300
wpercent = (basewidth/float(im.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
im = im.resize((basewidth, hsize))
im.save(output, format='JPEG', quality=100)
output.seek(0)
self.profile_image = InMemoryUploadedFile(output, 'ImageField', "%s.jpg" % self.profile_image.name.split('.')[0], 'image/jpeg',
sys.getsizeof(output), None)
super(Profile, self).save()
Кроме того, все, что я пытаюсь сделать, корректно выполняется за страницей ошибок. Пример Если я добавляю пост. После нажатия кнопки «Сохранить» я получаю вышеуказанную ошибку. Но пост сделан правильно, и изображение профиля также изменено. Когда я комментирую def save
, я могу добавлять сообщения и не получаю ошибок. Любая идея, что может быть причиной этого
Traceback:
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/contrib/auth/mixins.py" in dispatch
56. return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/views/generic/base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/views/generic/edit.py" in post
269. return self.delete(request, *args, **kwargs)
File "/home/samir/Samir/hello-fresh/src/HF/proof/views.py" in delete
65. return super().delete(*args, **kwargs)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/views/generic/edit.py" in delete
263. success_url = self.get_success_url()
File "/home/samir/Samir/hello-fresh/src/HF/proof/views.py" in get_success_url
85. user.profile.save()
File "/home/samir/Samir/hello-fresh/src/HF/accounts/models.py" in save
44. im = Image.open(self.profile_image)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/PIL/Image.py" in open
2613. fp.seek(0)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/files/utils.py" in <lambda>
20. seek = property(lambda self: self.file.seek)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/db/models/fields/files.py" in _get_file
51. self._file = self.storage.open(self.name, 'rb')
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/files/storage.py" in open
38. return self._open(name, mode)
File "/home/samir/Samir/HelloFreshVenv/lib/python3.6/site-packages/django/core/files/storage.py" in _open
300. return File(open(self.path(name), mode))
Exception Type: FileNotFoundError at /proof/proof_delete/grilled-polenta-with-spinach-and-robiola-cheese/29/
Exception Value: [Errno 2] No such file or directory: '/home/samir/Samir/hello-fresh/src/HF/media/profile_images/admin_big_XkWnEVw_VvyghrW_OYB7Ijl_hlaAxap_man4HmS_zcA3TKB_DVKIMRa.jpg'