Feature-Tour: Welches Django-Feature steckt wo?

Jede Zeile nennt ein Feature, die Datei im Projekt und eine Stelle zum Ausprobieren.

FeatureDateiAusprobieren
Einstellungen, Apps, Middleware-Kette schulung/settings.py Kommentare lesen
URL-Verteilung, include, Namensraeume schulung/urls.py, bibliothek/urls.py Adresszeile beobachten
Modelle, Felder, Beziehungen, Meta, Constraints bibliothek/models.py Buchliste
Migrationen bibliothek/migrations/ manage.py showmigrations
ORM: filter, Q, annotate, aggregate, N+1 bibliothek/management/commands/orm_spielwiese.py manage.py orm_spielwiese --sql
Eigener QuerySet/Manager BuchQuerySet in models.py nur verfuegbare
Admin: Listen, Filter, Inlines, Aktionen bibliothek/admin.py /admin/
Funktionsbasierte View autor_liste in views.py Autoren
Klassenbasierte Views (List, Detail, Create, Update, Delete) BuchListe ff. in views.py Buecher
Template-Vererbung und Bloecke templates/base.html Quelltext der Seite ansehen
Eigene Filter, simple_tag, inclusion_tag bibliothek/templatetags/bibliothek_extras.py Sterne auf einer Buchseite
Formulare: Form, ModelForm, Validierung bibliothek/forms.py Buch anlegen (Login noetig)
CSRF-Schutz {% csrf_token %} in jedem POST-Formular Token im Quelltext suchen
Messages-Framework views.py + base.html Buch speichern, Meldung beachten
Seitenaufteilung (Pagination) paginate_by in BuchListe Seite 2
Authentifizierung, Login/Logout, Zugriffsschutz django.contrib.auth.urls, @login_required, LoginRequiredMixin Anmelden als leser/demo1234
Sessions BuchDetail._merken Mehrere Buecher oeffnen, "Zuletzt angesehen"
Signale bibliothek/signals.py Buch ausleihen, Terminalausgabe beachten
Eigene Middleware schulung/middleware.py Header X-Dauer-Ms in den Entwicklerwerkzeugen
Context-Prozessor schulung/context_processors.py Fusszeile: Django-Version
Statische Dateien static/stil.css Farbe aendern, neu laden
Eigene Management-Befehle bibliothek/management/commands/ manage.py demo_daten --help
JSON statt HTML buch_als_json in views.py Buch oeffnen, dort "als JSON"
Tests bibliothek/tests.py manage.py test

Und wenn etwas nicht klappt?