这是我在settings.py中的登录重定向URL:
LOGIN_REDIRECT_URL='/category/all'
这是我的登录视图:
def login(request):
if request.user.is_authenticated:
return redirect('/')
else:
if request.method == "POST":
email=request.POST['email']
password=request.POST['password']
user=auth.authenticate(email=email,password=password)
if user is not None:
auth.login(request, user)
return redirect('/')
else:
messages.info(request,"Email Password didn't match")
return redirect('login')
else:
return render(request,"login.html")
每当用户登录时,我都希望将他重定向到类别/所有页面,但始终将其重定向到index(“ /”),这可能是因为我使用的是return redirect(“ /”)。即使我已经登录,对于某些视图也是必需的,即使url类似于:
http://localhost:8000/login/?next=/cart/
而不是重定向我到购物车,它也重定向索引。请帮助我解决此问题,以便重定向正常工作。
您构建了自己的登录视图,因此这意味着重定向机制将不起作用,因为LOGIN_REDIRECT_URL
等等是Django auth模块的LoginView
[Django-doc]的参数。
您只需在视图中重定向即可:
def login(request):
if request.user.is_authenticated:
return redirect('/category/all')
else:
if request.method == 'POST':
email=request.POST['email']
password=request.POST['password']
user=auth.authenticate(email=email,password=password)
if user is not None:
auth.login(request, user)
# redirect to a view
return redirect('/category/all')
else:
messages.info(request, "Email Password didn't match")
return redirect('login')
else:
return render(request,'login.html')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句