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.
Desafío
Fácil- Añade un campo
sharedaNote: unBooleanFieldque seaFalsepara 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