登录后网站并没有正确的URL



我在登录后使用重定向将用户发送到主页,但当用户试图登录时,它会将用户带到一些不同的URL。

views.py中的登录功能-

def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request,user)
return redirect('/homepage')
else:
return HttpResponse("Your account is not active.")
else:
print("Someone tried to login and failed.")
print("They used username: {} and password: {}".format(username,password))
return HttpResponse("Invalid login details supplied.")
else:
return render(request, 'Login.html', {})

它要转到的URL-"http://127.0.0.1:8000/accounts/profile/">

login.html-

<!DOCTYPE html>
{% extends "_inject.html" %}
{% load bootstrap4 %}
{% load staticfiles %}
{% block content %}
<div class="wrapper">
<div class="container">
<!-- <div class="jumbotron"> -->

<h1 class="c1">Login here</h1>
<form method="POST" class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Login</button>
{% endbuttons %}
</form>
<!-- </div> -->
</div>
</div>
{% endblock %}

URL模式-

urlpatterns = [
path('admin/', admin.site.urls),
# path('', views.index, name='base'),
path('signup/', views.register, name='register'),
path('createpost/', views.CreatePost, name='createpost'),
path('login/', auth_views.LoginView.as_view(template_name="login.html"),name='login'),
path('logout/', auth_views.LogoutView.as_view(), name="logout"),
path("by/<username>/<int:pk>/",views.PostDetail.as_view(),name="single"),
path("delete/<int:pk>/",views.DeletePost.as_view(),name="delete"),
path('', views.ListPosts.as_view(), name="homepage"),
]

在设置文件中,添加以下内容:LOGIN_REDIRECT_URL = 'homepage'

这将在用户成功登录后重定向到主页。

LOGIN_URL= 'login'LOGOUT_URL= 'logout'

有关更多信息,请查看以下内容:https://docs.djangoproject.com/en/3.0/ref/settings/#login-重定向url

相关内容

最新更新