Menu
CoddyTech

Кто посещает

Часть раздела Пользователи и учетные записи путешествия по 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 %}
challenge icon

Задание

Легко

В файле base.html, внутри <div class="account">:

  • Авторизованный пользователь видит Signed in as и своё имя пользователя, например Signed in as ada.
  • Все остальные видят You are not signed in.

Нажми «Run» и открой /. Затем войди в систему по адресу /admin/ как ada (пароль coddy-pass-123) и снова открой /.

Попробуйте сами

{% 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>

Все уроки раздела Пользователи и учетные записи

Потренируйтесь самостоятельно: Песочница Django