Django框架下CustomUser关联学生账号上传头像无法正常显示问题
修复方案
- 修正模板头像调用逻辑
你在视图中已经将对应的学生实例student传递到模板上下文中,头像字段profile_pic直接定义在Students模型下,不需要绕request.admin.user路径,同时要增加非空判断避免用户未上传头像时触发异常,修正后代码如下:
{% if student.profile_pic %} <img src="{{ student.profile_pic.url }}" class="img-circle elevation-2" alt="User Image"> {% else %} <!-- 未上传头像时展示默认头像,可自行替换路径 --> <img src="/static/img/default_avatar.png" class="img-circle elevation-2" alt="默认头像"> {% endif %}
- 确认媒体资源配置正确
如果修改路径后还是无法加载,检查Django项目的媒体文件配置是否完整:
- 项目
settings.py中添加如下配置:
# 媒体文件访问前缀 MEDIA_URL = '/media/' # 媒体文件存储本地路径 MEDIA_ROOT = BASE_DIR / 'media'
- 项目根路由
urls.py中添加媒体文件访问路由:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 原有路由保持不变 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 验证数据存储正确性
如果以上两步都完成还是无法显示,确认上传头像的逻辑是否正确,检查对应学生记录的profile_pic字段是否已经存储了正确的文件路径。
内容的提问来源于stack exchange,提问作者M Ismail
相关产品推荐
相关产品推荐

