在 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