Django登录重定向时触发NoReverseMatch错误,求排查
解决NoReverseMatch错误的方法
这个问题其实很常见,原因是你在redirect('watchfilms')里用的是URL名称,但你的URL配置里并没有给watchfilms这条路由设置命名标识,Django找不到对应的反向解析规则,所以抛出了这个错误。
具体修复步骤:
修改你的应用
urls.py,给watchfilms的URL添加name参数:
原来的代码:url(r'^watchfilms$', 'films.views.watchFilms'),修改为:
url(r'^watchfilms$', 'films.views.watchFilms', name='watchfilms'),这样Django就能通过
watchfilms这个名称找到对应的视图路由了。或者,你也可以直接使用视图的完整路径来重定向(不过推荐用命名URL的方式,后续修改URL路径时不需要修改视图里的代码):
将return redirect('watchfilms')改成:return redirect('films.views.watchFilms')
额外检查点:
确保你的watchFilms视图上的@login_required装饰器是正确导入的(确认一下from django.contrib.auth.decorators import login_required有没有在views.py顶部导入)。
这样修改后,登录成功后就能正常跳转到watchfilms页面啦!
内容的提问来源于stack exchange,提问作者Unknown
相关产品推荐
相关产品推荐

