공지사항관리 기능 분리 및 개선
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:
62
board_notice/views.py
Normal file
62
board_notice/views.py
Normal file
@ -0,0 +1,62 @@
|
||||
from django.shortcuts import render, redirect, get_object_or_404
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from .models import BoardNotice
|
||||
from .forms import BoardNoticeForm
|
||||
|
||||
# 게시글 목록
|
||||
def notice_list(request):
|
||||
notices = BoardNotice.objects.all().order_by('-created_at')
|
||||
return render(request, 'board_notice/notice_list.html', {'notices': notices})
|
||||
|
||||
# 게시글 상세 보기
|
||||
def notice_detail(request, pk):
|
||||
notice = get_object_or_404(BoardNotice, pk=pk)
|
||||
return render(request, 'board_notice/notice_detail.html', {'notice': notice})
|
||||
|
||||
# 공지사항 게시글 등록
|
||||
@login_required
|
||||
def create_notice(request):
|
||||
if request.method == 'POST':
|
||||
form = BoardNoticeForm(request.POST)
|
||||
if form.is_valid():
|
||||
notice = form.save(commit=False)
|
||||
notice.author = request.user # 작성자 정보 추가
|
||||
notice.save()
|
||||
return redirect('board_notice:notice_list')
|
||||
else:
|
||||
form = BoardNoticeForm()
|
||||
return render(request, 'board_notice/create_notice.html', {'form': form})
|
||||
|
||||
# 공지사항 게시글 수정
|
||||
@login_required
|
||||
def update_notice(request, pk):
|
||||
notice = get_object_or_404(BoardNotice, pk=pk)
|
||||
|
||||
# 작성자만 수정 가능하도록 권한 검사
|
||||
if notice.author != request.user:
|
||||
return redirect('board_notice:notice_list')
|
||||
|
||||
if request.method == 'POST':
|
||||
form = BoardNoticeForm(request.POST, instance=notice)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return redirect('board_notice:notice_detail', pk=notice.pk)
|
||||
else:
|
||||
form = BoardNoticeForm(instance=notice)
|
||||
|
||||
return render(request, 'board_notice/update_notice.html', {'form': form, 'notice': notice})
|
||||
|
||||
# 공지사항 게시글 삭제
|
||||
@login_required
|
||||
def delete_notice(request, pk):
|
||||
notice = get_object_or_404(BoardNotice, pk=pk)
|
||||
|
||||
# 작성자만 삭제 가능하도록 권한 검사
|
||||
if notice.author != request.user:
|
||||
return redirect('board_notice:notice_list')
|
||||
|
||||
if request.method == 'POST':
|
||||
notice.delete()
|
||||
return redirect('board_notice:notice_list')
|
||||
|
||||
return render(request, 'board_notice/confirm_delete.html', {'notice': notice})
|
||||
Reference in New Issue
Block a user