在 Django 的多个视图中查看头像
Seeing an avatar in multiple views in Django
我有一个项目可以让用户选择上传头像。上传工作正常,事实上,我可以在项目的根 /
中看到头像。但是,当我导航 /anything_else/
时,我的项目似乎找不到头像。
以下是处理上传的模型的相关部分:
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
[=21 查找图像=]
我听说过模板继承,但我不太确定该怎么做。有什么想法吗?
编辑
我通过更改
解决了它
<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">
问题与模板继承无关,似乎您的 MEDIA_URL
不是以 /
开头
这意味着你有一个亲戚 url(参见 Absolute vs relative URLs)
另外我认为您需要在模板中使用 <img src="{{ user.avatar.url }}">
https://docs.djangoproject.com/en/1.7/ref/models/fields/#django.db.models.fields.files.FieldFile.url
我有一个项目可以让用户选择上传头像。上传工作正常,事实上,我可以在项目的根 /
中看到头像。但是,当我导航 /anything_else/
时,我的项目似乎找不到头像。
以下是处理上传的模型的相关部分:
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
[=21 查找图像=]
我听说过模板继承,但我不太确定该怎么做。有什么想法吗?
编辑
我通过更改
解决了它<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">
问题与模板继承无关,似乎您的 MEDIA_URL
不是以 /
这意味着你有一个亲戚 url(参见 Absolute vs relative URLs)
另外我认为您需要在模板中使用 <img src="{{ user.avatar.url }}">
https://docs.djangoproject.com/en/1.7/ref/models/fields/#django.db.models.fields.files.FieldFile.url