我已经编写了自己的登录和注销视图。
我LOGIN_REDIRECT_URL
用来设置重定向页面。
我的登录视图非常简单:
def todologin(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
login(request, user)
url = reverse('pilot:home')
return HttpResponseRedirect(url)
else:
form = LoginForm()
return render(request, 'login.html', {'form':form})
@login_required
def home(request):
我正在@login_required
我的主页上使用。
这是值LOGIN_REDIRECT_URL
:
LOGIN_REDIRECT_URL = '/login/'
# tried this one too, LOGIN_REDIRECT_URL = 'pilot:login'
我的应用程序的urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^signup/', views.signup),
url(r'^home/', views.home, name='home'),
url(r'^login/', views.todologin, name='login'),
url(r'^logout/', views.todologout, name='logout'),
]
尽管如此,它总是重定向到 /accounts/login/?next=/home/
为什么会这样呢?
您应该覆盖LOGIN_URL
在settings.py
像下面。
# ....
LOGIN_URL = '/login/'
# ....
LOGIN_REDIRECT_URL
成功登录后,django使用它来重定向用户。
参考:https : //docs.djangoproject.com/en/2.0/ref/settings/#std : setting-LOGIN_URL
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句