Udostępnianie notatki
Część sekcji Użytkownicy i konta ścieżki Django w Coddy. Lekcja 15 z 16.
Notatki są prywatne i tak powinno być w przypadku większości z nich. Czasami chcesz pokazać jedną znajomemu: przepis, listę lektur. W tej lekcji i następnej dodasz możliwość udostępniania tylko do odczytu.
Udostępnianie to wybór właściciela, dlatego notatka przechowuje tę informację w polu BooleanField, które przyjmuje wartość True lub False. Nowa notatka musi pozostać prywatna, chyba że właściciel zdecyduje inaczej, więc domyślną wartością jest False. W formularzu ModelForm pole BooleanField staje się polem wyboru.
W tym przypadku formularz może ustawiać to pole, ponieważ jest to wybór właściciela dotyczący jego własnej notatki. owner to co innego: żaden formularz nie może go ustawiać.
Wyzwanie
ŁatwyPozwól właścicielowi udostępnić notatkę.
- W pliku
notes/models.pydodaj poleshareddo modeluNote: poleBooleanField, które dla nowej notatki ma wartośćFalse. - W pliku
notes/forms.pydodaj to pole doNoteForm, aby właściciel mógł je zaznaczyć. - W pliku
note_detail.htmlwyświetlaj tekstAnyone with the link can read this note.tylko wtedy, gdy notatka jest udostępniona.
Zaloguj się jako ada (hasło coddy-pass-123), zaznacz opcję Shared przy notatce i zapisz ją: na jej stronie pojawi się tekst Anyone with the link can read this note.
Spróbuj swoich sił
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
Wszystkie lekcje w sekcji Użytkownicy i konta
Poćwicz samodzielnie: Edytor online Django