ノートを共有する
CoddyのDjangoジャーニー「ユーザーとアカウント」セクションの一部。レッスン 15/16。
メモは非公開であり、そのほとんどはそれでよいでしょう。ときには、レシピや読書リストなどを友人に見せたいこともあります。このレッスンと次のレッスンでは、読み取り専用の共有機能を追加します。
共有は、所有者が選択し、メモに保存する設定から始まります。これはBooleanFieldで、trueかfalseのいずれかです。所有者が別の設定を選ばない限り、新しいメモは非公開のままである必要があるため、既定値はFalseです。ModelFormでは、BooleanFieldはチェックボックスになります。
ここでは、フォームでこのフィールドを設定できます。自分のメモについての選択は所有者が行うためです。ownerは異なります。このフィールドを設定できるフォームはありません。
チャレンジ
簡単Noteにsharedフィールドを追加します。新しいノートではFalseとなるBooleanFieldです。- 所有者は、ノートの作成時または編集時にフォームでチェックを入れられます。
- 共有ノートのページには
Anyone with the link can read this note.と表示されます。
「実行」を押し、ada(パスワードはcoddy-pass-123)でログインして、ノートを編集し、共有にチェックを入れます。
自分で試してみよう
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
ユーザーとアカウントのすべてのレッスン
自分で練習してみよう: Djangoプレイグラウンド