url 패턴에 포스트 생성, 수정, 삭제 페이지 연결을 작성하겠습니다.
파일명 : post/urls.py
from django.urls import path
from .views import *
app_name = 'post'
urlpatterns = [
path('', post_list, name='post_list'),
**path('new/', post_new, name='post_new'),**
**path('edit/<int:pk>/', post_edit, name='post_edit'),**
**path('delete/<int:pk>/', post_delete, name='post_delete'),**
]
이전에 작성했던 것 아래에 함수를 추가할 것입니다. 포스트 생성, 수정, 삭제 기능의 함수들을 작성할 것입니다. 그리고 로그인 기능을 전에 구현을 해 놓았기 때문에 로그인 기능을 활용하도록 하겠습니다.
@login_required 데코레이터를 써서 로그인 상태인 경우만 함수가 작동하게 합니다.
request 방식이 POST 방식일 때, PostForm이라는 폼을 만들어서 만약 폼 입력 값이 유효하다면 폼을 저장하는데, 유저 정보를 넣은 뒤 저장하기 위해 데이터베이스에 바로 저장되지 않도록 commit=False 옵션을 줍니다.
파일명 : post/views.py
@login_required
def post_new(request):
if request.method == 'POST':
form = PostForm(request.POST, request.FILES)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
**post.save()**
#post.tag_save()