Menu
CoddyTech

Anmelden

Teil des Abschnitts Benutzer und Konten der Django-Journey von Coddy. Lektion 2 von 16.

Die Website kann erkennen, wer angemeldet ist, aber sie hat keine Seite zum Anmelden. Django stellt die Ansicht LoginView bereit. Eine Zeile in der urls.py des Projekts bindet sie zusammen mit den Abmelde- und Passwortseiten ein:

path("accounts/", include("django.contrib.auth.urls")),

Nun gibt es /accounts/login/ mit dem Namen login. Die Ansicht rendert registration/login.html mit einem form, das ein Feld für username und eines für password enthält. Diese Vorlage schreibst du selbst: ein gewöhnliches POST-Formular. Django sucht im Ordner templates/ jeder App. Der Pfad beginnt mit registration/, nicht mit notes/, weil Djangos Ansicht deine App nicht kennt.

Nach erfolgreicher Anmeldung leitet die Ansicht zu LOGIN_REDIRECT_URL weiter. Der Standardwert /accounts/profile/ existiert hier nicht. Lege ihn daher in settings.py fest.

challenge icon

Aufgabe

Einfach

Füge eine Anmeldeseite hinzu.

  1. Binde in mysite/urls.py django.contrib.auth.urls unter accounts/ ein.
  2. Erstelle notes/templates/registration/login.html, das notes/base.html erweitert und form in einem POST-Formular mit {% csrf_token %} und einer Schaltfläche „Log in“ anzeigt.
  3. Setze in settings.py LOGIN_REDIRECT_URL auf "/".
  4. Verlinke in base.html für abgemeldete Besucher „Log in“ mit {% url 'login' %}.

Melde dich als ada an (Passwort coddy-pass-123): In der Kopfzeile steht „Signed in as ada“.

Probier es selbst

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("notes.urls")),
]

Alle Lektionen in Benutzer und Konten

Übe selbstständig: Django-Playground