Menu
CoddyTech

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ć.

challenge icon

Wyzwanie

Łatwy

Pozwól właścicielowi udostępnić notatkę.

  1. W pliku notes/models.py dodaj pole shared do modelu Note: pole BooleanField, które dla nowej notatki ma wartość False.
  2. W pliku notes/forms.py dodaj to pole do NoteForm, aby właściciel mógł je zaznaczyć.
  3. W pliku note_detail.html wyświetlaj tekst Anyone 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