Menu
CoddyTech

노트 공유하기

Coddy Django 여정의 사용자와 계정 섹션에 포함된 레슨. 16개 중 15번째.

메모는 비공개이며, 대부분의 메모는 비공개인 것이 맞습니다. 때로는 레시피나 읽기 목록처럼 메모 하나를 친구에게 보여 주고 싶을 수 있습니다. 이번 수업과 다음 수업에서 읽기 전용 공유 기능을 추가합니다.

공유 여부는 소유자가 선택하므로, 메모에는 이 값이 BooleanField인 True 또는 False로 저장됩니다. 소유자가 다르게 선택하지 않는 한 새 메모는 비공개로 유지되어야 하므로 기본값은 False입니다. ModelForm에서 BooleanField는 체크박스로 표시됩니다.

여기서는 자신의 메모에 대한 소유자의 선택이므로 양식에서 해당 필드를 설정할 수 있습니다. owner는 다릅니다. 어떤 양식도 이 값을 설정할 수 없습니다.

challenge icon

챌린지

쉬움

소유자가 메모를 공유할 수 있도록 하세요.

  1. notes/models.py에서 Note에 shared 필드를 추가하세요. 새 메모에서는 False인 BooleanField입니다.
  2. notes/forms.py에서 소유자가 체크할 수 있도록 NoteForm에 필드를 추가하세요.
  3. 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

사용자와 계정의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드