2
我的登錄網址是Django的顯示驗證的登錄頁面時,已經登錄
url(r'^login/$', 'django.contrib.auth.views.login',
{'template_name': 'login.html',
'extra_context': {'next': '/tasks/home/',
'title': 'Taskman | Log In'},
它確實成功登錄,但是當我鍵入「/用戶/密碼」再次作爲URL,它再次顯示登錄頁面成功登錄後。
那麼Django不處理這種情況?
由於login
意見顯示
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME,
authentication_form=AuthenticationForm,
current_app=None, extra_context=None):
"""
Displays the login form and handles the login action.
"""
redirect_to = request.REQUEST.get(redirect_field_name, '')
if request.method == "POST":
form = authentication_form(request, data=request.POST)
if form.is_valid():
# Ensure the user-originating redirection url is safe.
if not is_safe_url(url=redirect_to, host=request.get_host()):
redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)
# Okay, security check complete. Log the user in.
auth_login(request, form.get_user())
return HttpResponseRedirect(redirect_to)
else:
form = authentication_form(request)
current_site = get_current_site(request)
context = {
'form': form,
redirect_field_name: redirect_to,
'site': current_site,
'site_name': current_site.name,
}
if extra_context is not None:
context.update(extra_context)
return TemplateResponse(request, template_name, context,
current_app=current_app)
所以我一定要覆蓋AuthenticationForm
?
通過指定我自己的視圖,我無法使用默認身份驗證系統。如果我沒有錯? – user2950086
是的,您仍然可以使用標準身份驗證系統沒有問題,我所建議的是您公開給用戶的登錄URL可以指向您自己的自定義視圖,如果用戶是用戶,它將用戶重定向到默認身份驗證系統登錄視圖沒有登錄。 – robjohncox
現在我的觀點看起來像這樣的東西, – user2950086