У меня есть проект, который дает пользователю возможность загрузить аватар. Загрузка работает отлично, и, фактически, я вижу аватара в корне /
проекта. Однако, когда я перемещаюсь /anything_else/
, мой проект не может найти аватар.Видя аватар в нескольких представлениях в Django
Ниже приводится соответствующая часть модели, которая обрабатывает загрузку:
avatar = models.ImageField('profile picture', upload_to='static/media/images/avatars/', null=True, blank=True)
В моем user_base.html
шаблоне, у меня есть следующая строка, которая показывает аватар
<img id="profile_pic" src="{{ user.avatar }}" alt="Profile picture" style="width:30px;height:30px;border:0">
Так что, если я загружу фото guitar.jpg
и перейдите к mysite.com/static/media/images/avatars/guitar.jpg
, он будет найден.
Однако, если я перейти к mysite.com/news/
, я по-прежнему рассчитывать на видимый аватар, но вместо этого я получаю 404. Это потому, что он смотрит на изображение на mysite.com/news/static/media/images/avatars/guitar.jpg
Я слышал наследование шаблонов, но я не совсем уверен, как это сделать. Есть идеи?
EDIT
Я решил, изменив
<img id="profile_pic" src="{{ user.avatar }}" alt="Profile picture" style="width:30px;height:30px;border:0">
в
<img id="profile_pic" src="/{{ user.avatar }}" alt="Profile picture" style="width:30px;height:30px;border:0">
'STATIC_URL = '/ статический /' '. Я также попытался добавить '/' в 'upload_to' и привел к сбою. – erip
жаль, что я имел в виду 'MEDIA_URL', и не для' upload_to', потому что это путь на диске, а не URL-адрес – Anentropic
'MEDIA_URL = '''. Мой каталог 'media' находится в моей' static', поэтому я думаю, что все должно быть хорошо. – erip