【问题标题】:Django path missmatchDjango 路径不匹配
【发布时间】:2018-09-11 19:44:08
【问题描述】:

我的网址有问题。我的站点在 localhost 中的路径是:

当我想登录时,我会点击按钮,路径如下所示:

当我提交表单时,路径如下:

问题是当我输入错误的密码或用户名 django 将表单返回到相同的 url 时:

当我再次输入正确的用户名和密码时,url 看起来像这样:

我会告诉你我的网址:

    urlpatterns = [
    path('detska-kniznica', include('homepage.urls')),
    path('detska-kniznica/admin', admin.site.urls),
    path('detska-kniznica/games', include('games.urls')),
    path('detska-kniznica/register', include('register.urls')),
    path('detska-kniznica/login', include('login.urls')),
]

urlpatterns = [
    path('', views.index),
    path('/logUser', views.log_user),
    path('/logOut', views.log_out_user),
]

我的 HTML 提交按钮这样做:

 <form action="login/logUser" method="post" novalidate>

我的 views.py 看起来像这样:

elif request.method == 'POST' and 'btn_login' in request.POST:
    form = inputForms.LogUser(request.POST)
    if form.is_valid():
        print(form.errors)
        user_name = form.cleaned_data['username']
        user_password = form.cleaned_data['password']
        user = authenticate(username=user_name, password=user_password)
        if user is not None:
            print("som tu")
            request.session.set_expiry(86400)  # sets the exp. value of the session
            login(request, user)  # the user is now logged in
        else:
            print("help")
            print(form.errors)
            return render(request, "login.html", {'LogUser': form})
        return HttpResponseRedirect('/detska-kniznica')
    else:
        print(form.errors)
        return render(request, "login.html", {'LogUser': form}) 

上面的行应该返回 /login 但它返回 /login/logUser 这是错误的

else:
    print("Error: bad request in login.")
    return HttpResponseRedirect('/detska-kniznica')

有什么想法吗?非常感谢。

【问题讨论】:

    标签: python django path


    【解决方案1】:

    问题出在这段 HTML 中:

    <form action="login/logUser" method="post" novalidate>
    

    应该是:

    <form action="/login/logUser" method="post" novalidate>
    

    如果您没有前导 /,您的浏览器会假定 URL 是相对的。

    【讨论】:

    • 非常感谢。
    猜你喜欢
    • 2018-08-18
    • 2021-08-22
    • 2021-04-21
    • 2018-07-29
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多