Django:1.10
Ich möchte eine Fehlermeldung anzeigen, wenn die Anmeldung mit dem von Django bereitgestellten Authentifizierungssystem fehlschlägt.
Anscheinend können Sie den add_error von Form verwenden.
The Forms API | Django documentation | Django https://docs.djangoproject.com/en/1.10/ref/forms/api/#django.forms.Form.add_error
Bereiten Sie ein Formular vor,
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())
Add_error zum Formular in der Ansicht
views.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_Die ID oder das PASSWORT ist unterschiedlich.')
return render(request, 'polls/login.html', {'form': form})
Lassen Sie die Vorlage einfach eine Fehlermeldung anzeigen. (Da das erste Argument von add_error NONE ist, wird es von non_field_errors erhalten.)
login.html
・ ・ ・
{% for error in form.non_field_errors %}
<p>{{ error }}</p>
{% endfor %}
・ ・ ・
Es wurde so angezeigt.
Recommended Posts