Кто посещает
Часть раздела Пользователи и учетные записи путешествия по Django на Coddy. Урок 1 из 16.
Любой, кто откроет это приложение для заметок, увидит все заметки. Чтобы у каждого были свои заметки, сайту сначала нужно узнать, кто его посещает.
Приложение Django django.contrib.auth хранит учетные записи в модели User: имя пользователя, хешированный пароль и адрес электронной почты. Когда кто-то входит в систему, Django запоминает его с помощью сессии. Браузер отправляет небольшое значение — файл cookie — с каждым запросом, и оно указывает на строку на сервере.
При каждом запросе Django записывает посетителя в request.user, а в шаблонах он доступен как user. Посетитель, который не вошел в систему, является объектом AnonymousUser, поэтому проверяйте is_authenticated. Магазин показывает баннер только посетителям:
{% if not user.is_authenticated %}
<p class="banner">Make an account to save your cart.</p>
{% endif %}Задание
ЛегкоВ base.html, внутри <div class="account">, покажи, кто зашёл на сайт. Если пользователь вошёл в систему, в блоке отображаются Signed in as и его имя пользователя, например Signed in as ada. В противном случае отображается You are not signed in.
Открой /: там написано You are not signed in. Войди в систему на странице /admin/ как ada (пароль coddy-pass-123), затем снова открой /: Signed in as ada.
Попробуйте сами
{% 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>
Все уроки раздела Пользователи и учетные записи
3Ваши собственные данные
У заметки есть владелецТолько мои заметкиПотренируйтесь самостоятельно: Песочница Django