[PYTHON] Fehlermeldung anzeigen, wenn die Anmeldung in Django fehlschlägt

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.

無題.png

Recommended Posts

Fehlermeldung anzeigen, wenn die Anmeldung in Django fehlschlägt
[Django] Fehler, wenn SlugField in .filter () angegeben ist
[Jjango] Zeigt die Fehlermeldung an, die durch Auslösen von ValidationError angegeben wurde
Wenn ein _sqlite3-Fehler in der Abdeckung auftritt
Implementierung der Login-Funktion in Django
[Django] Zeigt eine Nachricht am Umleitungsziel an
Wenn base.html in Django nicht aufgerufen werden kann
So unterdrücken Sie Anzeigefehler in matplotlib
Django ~ Lass es uns im Browser anzeigen ~
[Django] Fehler beim Bereitstellen von Heroku (2)
[Django] SQLite-Versionsfehler beim Ausführen von python manage.py in einer aws cloud9-Umgebung
Berechtigungsfehler beim Lesen der Django-Upload-Datei
[Python] Dinge, die überprüft werden müssen, wenn in Django ein Unicode-Dekodierungsfehler auftritt
Wenn ich einen Chrom-Treiberfehler in Selenium bekomme
In Django werden Batch- (Befehls-) Ergebnisse nacheinander in HTML angezeigt
Übergeben Sie Login-Benutzerinformationen, um sie in Django anzuzeigen
Implementieren Sie die JWT-Anmeldefunktion im Django REST-Framework
Fehler beim Versuch, psycopg2 in Python zu installieren
Beim Zugriff von Andorid Chrome schlägt die Django CSRF-Überprüfung fehl oder Sie können sich nicht anmelden.
Modell in Django
Fehler in random.shuffle
Fehler im Pyinstaller
Ich möchte eine Fehlermeldung auf Japanisch mit dem Django-Passwortänderungsformular ausgeben
Die Fehleranzeige (ungelöster import'hoge ') beim Importieren eines selbst erstellten Moduls verschwindet mit VS Code nicht
Fehler in TensorBoard
Form in Django
Wenn in Python + Selenium "Nachricht: Sitzung nicht erstellt" auftritt
Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge
Wenn beim Python-Scraping ein Fehler auftritt (Anforderungen)
Wenn "FEHLER: HTTP wird nicht unterstützt" in mpsyt angezeigt wird
Erläuterung zum NoReverseMatch-Fehler in "Python Django Super Introduction"