def admin_login(request):
if request.method == 'POST':
username = request.POST["username"]
password = request.POST["password"]
user = authenticate(request,username = username, password = password)
if user is not None:
if(user.is_superuser):
auth_login(request, user)
return redirect(reverse("dashboard"))
else:
messages.info(request, "invalid credentials")
return redirect(reverse("admin"))
return render(request,'login.html')
這是管理員的 mylogin 功能,如何防止用戶登錄后訪問登錄頁面?
uj5u.com熱心網友回復:
您可以檢查請求的用戶是否已通過身份驗證,如果是,您可以將他重定向到另一個頁面。您可以檢查用戶是否像這樣通過身份驗證
if request.user.is_authenticated:
# redirect
所以你的視圖函式會是這樣的
def admin_login(request):
if request.user.is_authenticated:
return redirect(reverse("admin"))
if request.method == 'POST':
username = request.POST["username"]
password = request.POST["password"]
user = authenticate(request,username = username, password = password)
if user is not None:
if(user.is_superuser):
auth_login(request, user)
return redirect(reverse("dashboard"))
else:
messages.info(request, "invalid credentials")
return redirect(reverse("admin"))
return render(request,'login.html')
uj5u.com熱心網友回復:
在登錄功能開始時執行此操作
def user_login(request, *args, **kwargs):
if(request.user.is_authenticated):
print('user authenticated')
return HttpResponseRedirect('/')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/398168.html
上一篇:從選擇下拉選單中制作標簽
