Wer ist zu Besuch
Teil des Abschnitts Benutzer und Konten der Django-Journey von Coddy. Lektion 1 von 16.
Jeder, der diese Notizen-App öffnet, sieht jede Notiz. Damit jede Person ihre eigenen Notizen hat, muss die Website zuerst wissen, wer sie besucht.
Djangos App django.contrib.auth speichert Konten in ihrem Modell User: einen Benutzernamen, ein gehashtes Passwort und eine E-Mail-Adresse. Wenn sich jemand anmeldet, merkt Django sich die Person mit einer Sitzung. Der Browser sendet bei jeder Anfrage einen kleinen Wert zurück, ein Cookie, der auf einen Eintrag auf dem Server verweist.
Bei jeder Anfrage setzt Django die Besucherin oder den Besucher auf request.user, und Vorlagen erhalten diesen Wert als user. Eine Person, die nicht angemeldet ist, ist ein AnonymousUser. Frage also mit is_authenticated danach. Ein Shop zeigt nur Besucherinnen und Besuchern ein Banner:
{% if not user.is_authenticated %}
<p class="banner">Make an account to save your cart.</p>
{% endif %}Aufgabe
EinfachZeige in base.html innerhalb von <div class="account">, wer die Seite besucht. Wenn jemand angemeldet ist, zeigt das Feld Signed in as und den Benutzernamen an, zum Beispiel Signed in as ada. Andernfalls zeigt es You are not signed in. an.
Öffne /: Dort steht You are not signed in. Melde dich unter /admin/ als ada an (Passwort coddy-pass-123) und öffne dann /: Signed in as ada.
Probier es selbst
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}Notes{% endblock %}</title>
<link rel="stylesheet" href="{% static 'notes/style.css' %}">
</head>
<body>
<header>
<a class="brand" href="{% url 'notes:list' %}">Notes</a>
<nav>
<a href="{% url 'notes:create' %}">New note</a>
</nav>
<div class="account">
</div>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
Alle Lektionen in Benutzer und Konten
Übe selbstständig: Django-Playground