노트 공유하기
Coddy Django 여정의 사용자와 계정 섹션에 포함된 레슨. 16개 중 15번째.
메모는 비공개이며, 대부분의 메모는 비공개인 것이 맞습니다. 때로는 레시피나 읽기 목록처럼 메모 하나를 친구에게 보여 주고 싶을 수 있습니다. 이번 수업과 다음 수업에서 읽기 전용 공유 기능을 추가합니다.
공유 여부는 소유자가 선택하므로, 메모에는 이 값이 BooleanField인 True 또는 False로 저장됩니다. 소유자가 다르게 선택하지 않는 한 새 메모는 비공개로 유지되어야 하므로 기본값은 False입니다. ModelForm에서 BooleanField는 체크박스로 표시됩니다.
여기서는 자신의 메모에 대한 소유자의 선택이므로 양식에서 해당 필드를 설정할 수 있습니다. owner는 다릅니다. 어떤 양식도 이 값을 설정할 수 없습니다.
챌린지
쉬움소유자가 메모를 공유할 수 있도록 하세요.
notes/models.py에서Note에shared필드를 추가하세요. 새 메모에서는False인BooleanField입니다.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
사용자와 계정의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드