You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中头像上传成功但无法显示的问题求助

Django头像上传后无法在页面显示的解决方案

问题现象

  • 头像可正常上传并存储到数据库,控制台通过print(profile.profile_picture)能正确输出头像路径
  • 页面模板中{% if profile.profile_picture %}无法检测到头像存在,头像预览图也无法显示

核心原因

视图函数profile在渲染模板时,仅传递了form变量到上下文,未将profile对象传入模板。模板中使用profile.profile_picture调用对象属性,但模板上下文里不存在profile变量,导致判断条件始终不成立。

解决方案

修改views.py中的render语句,将profile对象加入到模板上下文:

修改后的views.py代码

@login_required
def profile(request):
    profile, created = Profile.objects.get_or_create(user=request.user)
    print(profile.profile_picture)
    if request.method == 'POST':
        form = ProfileForm(request.POST, request.FILES, instance=profile)
        if form.is_valid():
            form.instance.user = request.user
            form.save()
            return redirect('base:profile')
    else:
        form = ProfileForm(instance=profile)
    
    # 新增profile变量传入模板
    return render(request, 'profile.html', {'form': form, 'profile': profile})

额外验证点

  1. 确认项目settings.py中已正确配置媒体文件路径:
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'
  1. 确保项目根目录下已创建media/profile_pics文件夹,且具备读写权限

内容的提问来源于stack exchange,提问作者KnewJams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:30:29