Quem está visitando
Parte da seção Usuários e contas do Journey de Django da Coddy. Lição 1 de 16.
Qualquer pessoa que abrir este aplicativo de notas verá todas as notas. Para que cada pessoa tenha suas próprias notas, o site primeiro precisa saber quem está visitando.
O aplicativo django.contrib.auth do Django armazena contas no modelo User: um nome de usuário, uma senha com hash e um e-mail. Quando alguém faz login, o Django se lembra dessa pessoa por meio de uma sessão. O navegador envia de volta um pequeno valor, um cookie, em cada solicitação, e ele aponta para uma linha no servidor.
Em cada solicitação, o Django define o visitante em request.user, e os templates o recebem como user. Um visitante que não fez login é um AnonymousUser, então verifique usando is_authenticated. Uma loja mostra um banner apenas para visitantes:
{% if not user.is_authenticated %}
<p class="banner">Make an account to save your cart.</p>
{% endif %}Desafio
FácilEm base.html, dentro de <div class="account">, mostre quem está visitando. Quando alguém estiver conectado, a caixa exibirá Signed in as e o nome de usuário da pessoa, como em Signed in as ada. Caso contrário, exibirá You are not signed in.
Abra /: a página diz You are not signed in. Faça login em /admin/ como ada (senha coddy-pass-123) e, em seguida, abra /: Signed in as ada.
Experimente você mesmo
{% 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>
Todas as lições de Usuários e contas
1Quem está visitando
Quem está visitandoFazendo loginPratique por conta própria: Playground de Django