Condividere una nota
Fa parte della sezione Utenti e account del percorso Django di Coddy. Lezione 15 di 16.
Le note sono private, ed è giusto che la maggior parte lo sia. A volte vuoi mostrarne una a un amico: una ricetta, una lista di letture. In questa lezione e nella prossima aggiungerai la condivisione in sola lettura.
La condivisione è una scelta del proprietario, quindi la nota la memorizza in un BooleanField, True o False. Una nuova nota deve rimanere privata, a meno che il proprietario non decida diversamente, quindi il valore predefinito è False. In un ModelForm, un BooleanField diventa una casella di controllo.
Qui il modulo può impostare il campo, perché è una scelta del proprietario relativa alla propria nota. owner è diverso: nessun modulo può impostarlo.
Sfida
FacileConsenti al proprietario di condividere una nota.
- In
notes/models.py, aggiungi aNoteun camposhared: unBooleanFieldche per una nuova nota èFalse. - In
notes/forms.py, aggiungi il campo aNoteFormaffinché il proprietario possa selezionarlo. - In
note_detail.html, mostraAnyone with the link can read this note.solo quando la nota è condivisa.
Accedi come ada (password coddy-pass-123), seleziona Shared su una nota e salvala: la sua pagina mostra Anyone with the link can read this note.
Provalo tu
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
Tutte le lezioni di Utenti e account
Esercitati da solo: Playground Django