공지사항관리 기능 분리 및 개선
All checks were successful
Build And Test / build-and-push (push) Successful in 4m23s
All checks were successful
Build And Test / build-and-push (push) Successful in 4m23s
This commit is contained in:
@ -3,6 +3,16 @@ from django.contrib.auth.decorators import login_required
|
||||
from .models import Post
|
||||
from .forms import PostForm
|
||||
|
||||
# 게시글 목록
|
||||
def post_list(request):
|
||||
posts = Post.objects.all().order_by('-created_at')
|
||||
return render(request, 'blog/post_list.html', {'posts': posts})
|
||||
|
||||
# 게시글 상세 보기
|
||||
def post_detail(request, pk):
|
||||
post = get_object_or_404(Post, pk=pk)
|
||||
return render(request, 'blog/post_detail.html', {'post': post})
|
||||
|
||||
@login_required
|
||||
def create_post(request):
|
||||
if request.method == 'POST':
|
||||
@ -17,10 +27,37 @@ def create_post(request):
|
||||
form = PostForm()
|
||||
return render(request, 'blog/create_post.html', {'form': form})
|
||||
|
||||
def post_list(request):
|
||||
posts = Post.objects.all().order_by('-created_at')
|
||||
return render(request, 'blog/post_list.html', {'posts': posts})
|
||||
|
||||
def post_detail(request, pk):
|
||||
|
||||
@login_required
|
||||
def update_post(request, pk):
|
||||
post = get_object_or_404(Post, pk=pk)
|
||||
return render(request, 'blog/post_detail.html', {'post': post})
|
||||
|
||||
# 작성자만 수정 가능하도록 권한 검사
|
||||
if post.author != request.user:
|
||||
return redirect('blog:post_list')
|
||||
|
||||
if request.method == 'POST':
|
||||
form = PostForm(request.POST, instance=post)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect('blog:post_detail', pk=post.pk)
|
||||
else:
|
||||
form = PostForm(instance=post)
|
||||
|
||||
return render(request, 'blog/update_post.html', {'form': form, 'post': post})
|
||||
|
||||
@login_required
|
||||
def delete_post(request, pk):
|
||||
post = get_object_or_404(Post, pk=pk)
|
||||
|
||||
# 작성자만 삭제 가능
|
||||
if post.author != request.user:
|
||||
return redirect('blog:post_list')
|
||||
|
||||
# POST 요청일 때 삭제
|
||||
if request.method == 'POST':
|
||||
post.delete()
|
||||
return redirect('blog:post_list')
|
||||
|
||||
return render(request, 'blog/confirm_delete.html', {'post': post})
|
||||
Reference in New Issue
Block a user