我想在我的django项目的所有页面中显示用户的头像。
我在base.html和href中使用了<img>
标记:{{ request.user.profile.get_avatar }}
。
但它无法正常工作。
在项目的第一页它可以工作,但在另一页不起作用。
问题出在地址上。 例如,在图片显示的网址为www.mysite.com/index的索引页面中。但是在www.mysite.com/v1/v2/v3中没有显示图像。
这是个人资料类的get_avatar方法:
def get_avatar(self):
if self.avatar:
return os.path.join(settings.MEDIA_URL + str(self.avatar))
else:
return os.path.join(settings.MEDIA_URL + str('avatars/student.jpg'))
def profile_me(request):
the_profile = get_object_or_404(Profile, user=request.user)
klasses = KlassStudents.objects.filter(student=request.user.profile)
return render(request, 'ejazeostad/profile/profile.html', {'profile': the_profile, 'klasses': klasses})
答案 0 :(得分:1)
MEDIA_URL
设置应为绝对网址,例如
MEDIA_URL = '/files/'
目前,您有一个相对网址'files/'
。这意味着URL会根据您所在的页面而变化。当您访问www.mysite.com/index
时,相对网址会扩展为www.mysite.com/files/avatars/avatar.jpg
,但是当您访问www.mysite.com/v1/v2/v3
时,相对网址会扩展为www.mysite.com/v1/v2/files/avatars/avatar.jpg
,这是不正确的。