#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.py3. о, если это не то, что вы имели в виду: мой тег изображения в шаблоне профиля, куда я пытаюсь загрузить изображение, выглядит так:
<img src="{{ user.profile.image }}" class="profile-pic-onprofile">
4. О! У меня не было «.url» в источнике. Кажется, сейчас это работает!