У меня возникла проблема с отображением медиа-контента на моем веб-сайте. Все отлично работает при запуске на localhost. Однако при развертывании в python где-либо я получаю FileNotFoundError , когда я пытаюсь загрузить изображение через форму. Я просмотрел переполнение некоторых смежных тем, но не нашел ни одной темы, которая позволила бы мне решить мою проблему.
Вот точная ошибка, полученная при отправке формы загрузки изображения:
Кажется, проблема с методом resize в models.py (который отлично работает на localhost)
Вот соответствующие установочные файлы: settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
...
MEDIA_DIR = os.path.join(BASE_DIR, 'media')
# Media
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
IMAGES_DIR = os.path.join(MEDIA_URL,"images")

Я полагаю, что ошибка связана с тем, что метод images_path не перенастраивает правильное местоположение (но он работает на локальном хосте). Вот модель, которая хранит изображение и определяет, как изображения сохраняются: models.py
class Image(models.Model):
# this might work?
def images_path():
return os.path.join(settings.IMAGES_DIR, 'usruploads')
def resize(self):
im = PIL.Image.open(self.image)
size=(200,200)
out = im.resize(size)
out.save(self.image.__str__())
def save(self, *args, **kwargs):
super(Image, self).save(*args, **kwargs)
self.resize()
image = models.ImageField(upload_to=images_path()[1:], max_length=255)
Я также добавлю структуру каталогов мультимедиа сайта на случай, если эта информация будет полезна.

Это моя первая попытка развертывания веб-приложения Django с помощью python в любом месте, надеюсь, когда-то проблема исправлена, это ошибка, которую я больше никогда не сделаю.
Я реализовал предложенное вами изменение, и указанный URL-адрес существует, и теперь это начало, однако сервер заявляет, что это не так. Я распечатал URL и путь к изображению следующим образом:
Я могу go перейти на страницу индекса и ввести этот URL, и он загрузит изображение. Хорошо, ваше предложение было правильным, пока путь вместо __str __ () работал. Причина, по которой возникла вторая проблема, была связана с тем, что я открывал изображение с помощью url и пытался сохранить его с помощью path , это не понравилось. Спасибо за вашу помощь!