Menu
CoddyTech

Quién está visitando

Parte de la sección Usuarios y cuentas del Journey de Django de Coddy. Lección 1 de 16.

Cualquiera que abra esta aplicación de notas ve todas las notas. Para que cada persona tenga sus propias notas, el sitio primero tiene que saber quién lo visita.

La aplicación django.contrib.auth de Django almacena las cuentas en su modelo User: un nombre de usuario, una contraseña cifrada y un correo electrónico. Cuando alguien inicia sesión, Django lo recuerda mediante una sesión: una cookie, un pequeño valor que el navegador envía con cada solicitud y que apunta a una fila en el servidor.

En cada solicitud, Django asigna al visitante a request.user, y las plantillas lo reciben como user. Un visitante que no ha iniciado sesión es un AnonymousUser, así que comprueba is_authenticated. Una tienda muestra un anuncio solo a los visitantes:

{% if not user.is_authenticated %}
    <p class="banner">Make an account to save your cart.</p>
{% endif %}
challenge icon

Desafío

Fácil

En base.html, dentro de <div class="account">:

  • Un usuario que haya iniciado sesión verá Signed in as y su nombre de usuario, como en Signed in as ada.
  • Los demás verán You are not signed in.

Pulsa Ejecutar y abre /. Después, inicia sesión en /admin/ como ada (contraseña coddy-pass-123) y vuelve a abrir /.

Pruébalo tú mismo

{% 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 las lecciones de Usuarios y cuentas

Practica por tu cuenta: Playground de Django