Django — не удается найти изображения через ‘/ media /’

#python #django

#python #django

Вопрос:

Кажется, я не могу заставить изображения работать над моим проектом django.

Я создал модель «профиля», которая равна 1: 1 для каждого пользователя, а одно из полей профиля — это изображение профиля.


Я добавил следующее в свой settings.py:

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

Я добавил в свой проект следующее urls.py:

 from django.conf import settings
from django.conf.urls.static import static
  

и следующее после всех моих URL-шаблонов:

 if settings.DEBUG:
    urlpatterns  = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  

Изображение сохраняется в моем корневом каталоге /media / profile_pics


Когда я открываю отсутствующее изображение на новой вкладке, я получаю сообщение об ошибке 404, в котором говорится, что изображение не найдено по адресу, «http://localhost:8000/profile/profile_pics/ProfilePic.jpg «


Однако, когда я меняю

 MEDIA_URL = '/media/'
  

Для

 MEDIA_URL = '/profile/'
  

изображение загрузится на странице моего профиля, profile.html страница с URL-адресом «profile /», но изображение не будет загружено ни на одну другую страницу.


Чего мне не хватает?

Комментарии:

1. Как вы отображаете URL-адрес в шаблоне?

2. Я все еще учусь, поэтому я не знаю, отвечает ли это на ваш вопрос: в моем users/views.py У меня есть представление «профиль», которое включает return render(request, 'users/profile.html', context) в себя отображение шаблона профиля. Чтобы получить доступ к этому, я path('', include('users.urls')) включил в «urlpatterns» моего проекта и path('profile/', views.profile, name='Profile') в мой users/urls.py

3. о, если это не то, что вы имели в виду: мой тег изображения в шаблоне профиля, куда я пытаюсь загрузить изображение, выглядит так: <img src="{{ user.profile.image }}" class="profile-pic-onprofile">

4. О! У меня не было «.url» в источнике. Кажется, сейчас это работает!