Media files хранит файлы в MEDIA_ROOT, но обслуживает их из папки app

У меня проблемы с тем, чтобы подчинить media_root своей воле.

Когда я пытаюсь обслужить изображение, к пути файла добавляется суффикс, точнее, он пытается указать на приложение (yoga), хотя я хочу, чтобы он указывал на BASE_DIR / media.

Например, это даст мне следующее:

http://localhost:8000/yoga/media/images/satori.jpg

Но папка media находится (автоматически генерируется) на одну папку выше в иерархии dir.

Я ломал голову, потому что не могу понять, где эта строка "yoga/" добавлена к пути, и не понимаю, почему или как она там оказалась, если, конечно, не учитывать, что модель, из которой она взята, живет внутри каталога приложения yoga.

Вот то, что, на мой взгляд, может быть актуально. Пожалуйста, дайте мне знать, если вы хотите увидеть больше товаров.

Дерево:

  .
  ├── boofers.txt 
  ├── db.sqlite3 
  ├── dos_env
  ├── manage.py
  ├── media
  ├── static
  ├── yoga
  └── yoga_dos

В settings.py:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/'

>

в модели @ yoga/models.py:

ex_img = models.ImageField(upload_to='media/images', blank=True, default='yogapose.jpg')

Вы получаете следующее:

http://localhost:8000/yoga/media/images/satori.jpg

Потому что вы добавлены таким образом в models.py:

upload_to='media/images', 

Чтобы решить эту проблему, просто добавьте следующий способ:

upload_to='images/'

Выход выглядит следующим образом после добавления вышеприведенного кода:

http://localhost:8000/media/images/satori.jpg

Примечание: Не создавайте папку media внутри проекта или приложения. Он создаст папку media автоматически внутри вашего проекта.

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