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

Django更新个人资料出现NoReverseMatch反向解析错误如何解决

问题根源与修复方案

1. 修复edit_profile视图的redirect跳转(直接触发报错的原因)

你的urls.py中profile路由定义要求必须传入username参数才能反向解析,原有代码return redirect('profile')没有传递参数,修改为:

return redirect('profile', username=request.user.username)

2. 修复edit_profile视图的参数定义错误

你当前urls.py中edit_profile的路由没有配置username参数,但视图函数定义为def edit_profile(request, username):,访问时会触发参数缺失错误,二选一修复即可:

  • 方案1(推荐,编辑本人资料不需要额外传参,默认取当前登录用户):删除视图的username参数,补充登录校验装饰器
from django.contrib.auth.decorators import login_required

@login_required
def edit_profile(request):
    # 剩余原有逻辑保持不变
  • 方案2:修改urls.py的edit_profile路由,补充username参数:
path('edit_profile/<str:username>', user_views.edit_profile, name='edit_profile')

同时修改profile.html中的编辑链接,补充传参:

<a href="{% url 'edit_profile' username=request.user.username %}">Edit Profile</a>

3. 修复profile.html的变量引用错误

你在profile视图中传给模板的用户变量是user_id,但个人资料展示块中直接使用了user.first_name、user.username会取不到值,修改视图的context配置即可:

# profile视图中的context修改为如下
context = {
    'title': 'Profile',
    'user': user
}

后续模板中所有user_id都可以替换为user,避免变量混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 05:30:01