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.
Défi
Facile- Ajoutez un champ
sharedàNote: unBooleanFieldqui vautFalsepour 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