Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Consenti al proprietario di condividere una nota.

  1. In notes/models.py, aggiungi a Note un campo shared: un BooleanField che per una nuova nota è False.
  2. In notes/forms.py, aggiungi il campo a NoteForm affinché il proprietario possa selezionarlo.
  3. In note_detail.html, mostra Anyone 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