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

Django登录成功后跳转至articles页面出现404错误求助

Django登录成功后跳转至articles页面出现404错误求助

看起来你遇到了一个典型的Django路由配置错误,问题出在登录成功后的跳转目标上,我来帮你梳理一下:

错误原因分析

你在users/views.py的signin函数里写了:

return redirect('articles/index.html')

但这个写法是错误的:

  • Django的redirect()函数接收的是URL路径或者URL名称,而不是模板文件的路径
  • 你的URL配置里,articles的入口是path('articles', include('articles.urls')),而articles/urls.py里的根路径对应articles_view视图,正确的访问URL是http://127.0.0.1:8000/articles/,根本不存在articles/index.html这个路由规则,所以会返回404。

解决方案

把signin函数里的跳转代码改成下面两种方式之一即可:

方式1:使用URL名称(推荐)

因为你已经给articles的视图设置了name='articles_view',直接用这个名称跳转,这样后续修改URL路径也不用改这里的代码:

def signin(request):
    if request.method =='POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('articles_view')  # 这里改为URL名称
        else:
            messages.error(request, "Bad Credentials")
            return redirect('home')

方式2:使用绝对URL路径

直接写完整的URL路径:

return redirect('/articles/')

额外说明

记住一个核心逻辑:在Django里,用户访问的是URL路由,路由匹配到对应的视图函数,视图函数再去渲染模板文件。你不能直接跳转模板文件的路径,必须通过路由来间接访问。

备注:内容来源于stack exchange,提问作者Peanut Gallery

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:59:33