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 lectures. Dans cette leçon et la suivante, tu vas ajouter le partage en lecture seule.

Le partage commence par un choix du propriétaire, enregistré sur la note : un BooleanField, vrai ou faux. Une nouvelle note doit rester privée, sauf si son 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 ce 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
  • Ajoutez un champ shared à Note : un BooleanField qui vaut False pour une nouvelle note.
  • Le propriétaire peut cocher cette option dans le formulaire de note lors de la rédaction ou de la modification.
  • La page d’une note partagée affiche Anyone with the link can read this note.

Cliquez sur Run, connectez-vous en tant que ada (mot de passe coddy-pass-123), modifiez une note et cochez shared.

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