Как поделиться заметкой
Часть раздела Пользователи и учетные записи путешествия по Django на Coddy. Урок 15 из 16.
Заметки являются личными, и для большинства это правильно. Иногда хочется показать одну из них другу: рецепт или список книг для чтения. В этом и следующем уроке вы добавите возможность делиться заметками только для чтения.
Решение о том, делиться ли заметкой, принимает её владелец, поэтому заметка хранит это решение в поле BooleanField со значением True или False. Новая заметка должна оставаться личной, если владелец не решит иначе, поэтому значение по умолчанию — False. В ModelForm поле BooleanField становится флажком.
Здесь форма может задавать значение этого поля, поскольку это выбор владельца относительно его собственной заметки. Поле owner — другое дело: ни одна форма не может задавать его значение.
Задание
ЛегкоПозвольте владельцу делиться заметкой.
- В
notes/models.pyдобавьте полеsharedвNote:BooleanField, значение которого для новой заметки —False. - В
notes/forms.pyдобавьте это поле вNoteForm, чтобы владелец мог установить флажок. - В
note_detail.htmlпоказывайтеAnyone with the link can read this note.только если заметка доступна другим.
Войдите как ada (пароль coddy-pass-123), установите флажок «Доступна другим» у заметки и сохраните её: на её странице появится Anyone with the link can read this note.
Попробуйте сами
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
Все уроки раздела Пользователи и учетные записи
3Ваши собственные данные
У заметки есть владелецТолько мои заметкиПотренируйтесь самостоятельно: Песочница Django