게시판 만들기
필수 요구사항
선택 요구사항
- 관리자의 게시글 권한
- 비밀글 작성기능
- 조회수 많은 순, 최신순 정렬 조회
- 회원가입, 로그인
- 좋아요 기능
- 유저 프로필 이미지 기능
- 게시글에 이미지 첨부
- 외부 API 사용
개발 환경
게시물 CRUD
게시물 전체 목록 보기
def post_list(request):
post_list = Post.objects.all()
paginator = Paginator(post_list, 8)
current_page = request.GET.get("page")
if current_page is None:
current_page = 1
page = paginator.page(current_page)
return render(request, "posts/post_list.html", {"page": page})
게시물 상세 페이지
def post_detail(request, post_id):
post = get_object_or_404(Post, id=post_id)
return render(request, "posts/post_detail.html", {"post": post})
게시물 생성
def post_create(request):
if request.method == "POST":
form = PostForm(request.POST)
if form.is_valid():
new_post = form.save()
return redirect("post-detail", post_id=new_post.id)
else:
form = PostForm()
return render(request, "posts/post_form.html", {"form": form})
게시물 수정
def post_update(request, post_id):
post = get_object_or_404(Post, id=post_id)
if request.method == "POST":
form = PostForm(request.POST, instance=post)
if form.is_valid():
form.save()
return redirect("post-detail", post_id=post.id)
else:
form = PostForm(instance=post)
return render(request, "posts/post_form.html", {"form": form})
게시물 삭제
def page_delete(request, post_id):
post = get_object_or_404(Post, id=post_id)
if request.method == "POST":
post.delete()
return redirect("post-list")
else:
return render(request, "posts/post_confirm_delete.html", {"post": post})