Eine Notiz teilen
Teil des Abschnitts Benutzer und Konten der Django-Journey von Coddy. Lektion 15 von 16.
Notizen sind privat, und das ist bei den meisten auch richtig so. Manchmal möchtest du eine Notiz mit einem Freund teilen: ein Rezept, eine Leseliste. In dieser und der nächsten Lektion fügst du das Teilen mit Lesezugriff hinzu.
Das Teilen beginnt als eine Entscheidung, die der Eigentümer trifft und die in der Notiz gespeichert wird: ein BooleanField, true oder false. Eine neue Notiz muss privat bleiben, sofern der Eigentümer nichts anderes festlegt, daher ist der Standardwert False. In einem ModelForm wird ein BooleanField zu einem Kontrollkästchen.
Hier darf das Formular das Feld setzen, weil es die Entscheidung des Eigentümers über die eigene Notiz ist. owner ist anders: Kein Formular darf es setzen.
Aufgabe
Einfach- Füge zu
Noteein Feldsharedhinzu: einBooleanField, das bei einer neuen NotizFalseist. - Der Besitzer kann es beim Schreiben oder Bearbeiten im Notizformular aktivieren.
- Auf der Seite einer geteilten Notiz wird
Anyone with the link can read this note.angezeigt.
Klicke auf „Run“, melde dich als ada an (Passwort coddy-pass-123), bearbeite eine Notiz und aktiviere „shared“.
Probier es selbst
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
Alle Lektionen in Benutzer und Konten
Übe selbstständig: Django-Playground