로그인 실패 시 오류 정보를 Django에 표시합니다.
Django가 준비한 인증 시스템에 로그인에 실패했을 때의 오류 정보를 표시하고 싶습니다.
보아하니 Form의 add_error를 쓰면 돼요.
The Forms API | Django documentation | Django
https://docs.djangoproject.com/en/1.10/ref/forms/api/#django.forms.Form.add_error
준비
forms.py
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(label='LOGIN_ID', max_length=30)
password = forms.CharField(
label='PASSWORD', max_length=128, widget=forms.PasswordInput())
view에서 form 중 add_errorviews.py
from django.contrib.auth import authenticate, login
from django.shortcuts import get_object_or_404, redirect, render
from .forms import LoginForm
def user_login(request):
form = LoginForm()
return render(request, 'polls/login.html', {'form': form})
def authentication(request):
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('polls:index')
form.add_error(None, 'LOGIN_ID、またはPASSWORDが違います。')
return render(request, 'polls/login.html', {'form': form})
템플릿에 오류 메시지를 표시하기만 하면 됩니다.(add_error의 첫 번째 매개변수를 NONE로 설정하여 non_field_errors에서 가져옴)
login.html
・・・
{% for error in form.non_field_errors %}
<p>{{ error }}</p>
{% endfor %}
・・・
이렇게 표시됩니다.Reference
이 문제에 관하여(로그인 실패 시 오류 정보를 Django에 표시합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nakkun/items/9c363647588120aa5a4f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)