Kto odwiedza stronę
Część sekcji Użytkownicy i konta ścieżki Django w Coddy. Lekcja 1 z 16.
Każda osoba, która otworzy tę aplikację do notatek, widzi wszystkie notatki. Aby każda osoba miała własne notatki, witryna musi najpierw wiedzieć, kto ją odwiedza.
Aplikacja Django django.contrib.auth przechowuje konta w swoim modelu User: nazwę użytkownika, zahaszowane hasło i adres e-mail. Gdy ktoś się loguje, Django zapamiętuje tę osobę za pomocą sesji. Przeglądarka przy każdym żądaniu odsyła niewielką wartość — plik cookie — który wskazuje wiersz na serwerze.
Przy każdym żądaniu Django przypisuje odwiedzającego do request.user, a szablony otrzymują go jako user. Odwiedzający, który się nie zalogował, jest obiektem AnonymousUser, więc sprawdź is_authenticated. Sklep wyświetla baner tylko odwiedzającym:
{% if not user.is_authenticated %}
<p class="banner">Make an account to save your cart.</p>
{% endif %}Wyzwanie
ŁatwyW pliku base.html, wewnątrz <div class="account">, wyświetl, kto odwiedza stronę. Gdy ktoś jest zalogowany, pole pokazuje Signed in as i nazwę użytkownika, na przykład Signed in as ada. W przeciwnym razie pokazuje You are not signed in.
Otwórz /: pojawi się komunikat You are not signed in. Zaloguj się pod adresem /admin/ jako ada (hasło coddy-pass-123), a następnie otwórz /: Signed in as ada.
Spróbuj swoich sił
{% 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>
Wszystkie lekcje w sekcji Użytkownicy i konta
Poćwicz samodzielnie: Edytor online Django