python - 登录网站后无法访问正确的 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-redirect-url
推荐阅读
- javascript - 模仿 chrome DevTools 的 Javascript -> 在页面中选择一个元素来检查它
- python - 联邦学习实施
- java - 配置项目 ':app' 时出现问题。错误
- python - Fill_between error python - 给我错误:序数必须> = 1
- php - 比较两个数组并将结果放入php中的第三个数组
- sql - Redshift - 如何将过去 4 周的数字作为每行的窗口函数求和?
- python - 枕头 - 使用粘贴在不透明图像上的透明度
- primefaces - 我如何解决 JSF 中的 Firefox 刷新问题
- graphql - 来自不受控制的 API 的 GraphQL 模式语言处理映射类型
- asp.net - IIS 10 找不到此页面的资源类。请检查资源文件是否存在,然后重试