Menu
CoddyTech

Partager une note

Fait partie de la section Utilisateurs et comptes du Journey Django de Coddy. Leçon 15 sur 16.

Les notes sont privées, et c’est le cas de la plupart d’entre elles. Parfois, tu veux en montrer une à un ami : une recette, une liste de lecture. Au cours de cette leçon et de la suivante, tu vas ajouter le partage en lecture seule.

Le partage est un choix que fait le propriétaire ; la note l’enregistre donc dans un BooleanField, avec True ou False. Une nouvelle note doit rester privée, sauf si le propriétaire en décide autrement ; sa valeur par défaut est donc False. Dans un ModelForm, un BooleanField devient une case à cocher.

Ici, le formulaire peut définir le champ, car c’est le choix du propriétaire concernant sa propre note. owner est différent : aucun formulaire ne peut le définir.

challenge icon

Défi

Facile

Permets au propriétaire de partager une note.

  1. Dans notes/models.py, ajoute un champ shared à Note : un BooleanField qui vaut False pour une nouvelle note.
  2. Dans notes/forms.py, ajoute le champ à NoteForm pour que le propriétaire puisse le cocher.
  3. Dans note_detail.html, affiche Anyone with the link can read this note. uniquement lorsque la note est partagée.

Connecte-toi en tant que ada (mot de passe coddy-pass-123), coche « Partagée » pour une note et enregistre-la : sa page affiche Anyone with the link can read this note.

Essayez vous-même

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

Toutes les leçons de Utilisateurs et comptes

Entraînez-vous par vous-même : Playground Django