Menu
CoddyTech

Compartir una nota

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

Las notas son privadas, y eso es lo adecuado para la mayoría. A veces quieres mostrarle una a un amigo: una receta, una lista de lecturas. En esta lección y en la siguiente añadirás la opción de compartir en modo de solo lectura.

Compartir empieza como una decisión que toma el propietario y que se almacena en la nota: un BooleanField, verdadero o falso. Una nota nueva debe seguir siendo privada, a menos que el propietario indique lo contrario, así que su valor predeterminado es False. En un ModelForm, un BooleanField se convierte en una casilla de verificación.

Aquí, el formulario puede establecer el campo, porque es una decisión del propietario sobre su propia nota. owner es diferente: ningún formulario puede establecerlo.

challenge icon

Desafío

Fácil
  • Añade un campo shared a Note: un BooleanField que sea False para una nota nueva.
  • El propietario puede marcarlo en el formulario de notas al escribir o editar.
  • La página de una nota compartida muestra Anyone with the link can read this note.

Pulsa Run, inicia sesión como ada (contraseña coddy-pass-123), edita una nota y marca shared.

Pruébalo tú mismo

from django.conf import settings
from django.db import models


class Note(models.Model):
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="notes")
    title = models.CharField(max_length=100)
    body = models.TextField(blank=True)
    created = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ["-created"]

    def __str__(self):
        return self.title

Todas las lecciones de Usuarios y cuentas

Practica por tu cuenta: Playground de Django