이미 많은 것을 배웠어요. 하지만 아직 개선해 볼 것들이 남아있어요. 이제 게시글 미리 보기와 발행을 위한 기능을 추가해 볼 것입니다. 이제는 필요 없는 글을 삭제하는 것도 할거에요. 간단하게요!
미리 보기로 블로그 글 저장하기
새 글 폼을 사용하면 글이 작성될 때 바로 발행 될 거에요. 미리 보기로 글을 저장하려면 미리 보기 blog/views.py파일에서 post_new와 post_edit메소드의 다음 줄을 삭제하세요.
post.published_date = timezone.now()
이렇게 하면, 새로 작성한 글이 바로 게시되지 않고 미리 볼 수 있는 초안으로 저장이 됩니다. 지금 우리가 하려는 건 작성된 글과 목록을 미리 볼 수 있도록 할거에요. 이제 해보도록 하죠!
게시되지 않은 블로그 글 목록 페이지 만들기
기본 튜토리얼에서 배웠던 QuerySet 내용 모두 기억하고 있죠? 기본 튜토리얼에서는 블로그 게시물만 보여주는 post_list를 만들었어요. (기본 값으로 채워진 published_date도 함께요.)
이번에도 비슷한 것을 해볼 건데요. 하지만 이번에는 임시저장(draft) 기능을 구현해볼 거에요.
새 글 추가하기 버튼 근처에 blog/templates/blog/base.html 링크를 추가하세요(<h1><a href="/">Django Girls Blog</a></h1>위에 바로 추가하면 됩니다!). 발행 전 미리 보기가 모두에게 보이는 걸 원치 않을 거예요. 새로운 글 추가하기 바로 아래에 {% if user.is_authenticated %}을 추가해 주세요.
posts = Post.objects.filter(published_date__isnull=True).order_by('created_date') 코드를 뜯어 살펴봅시다. (published_date__isnull=True) 코드로 발행되지 않은 글 목록을 가져옵니다. (order_by('created_date') 코드로 created_date 필드에 대해 오름차순 정렬을 수행합니다.)
마지막으로 템플릿을 수정해 봅시다. 아래 내용으로 blog/templates/blog/post_draft_list.html 파일을 생성해주세요.