1. urls.py 수정

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'),**
]

2. views.py

이전에 작성했던 것 아래에 함수를 추가할 것입니다. 포스트 생성, 수정, 삭제 기능의 함수들을 작성할 것입니다. 그리고 로그인 기능을 전에 구현을 해 놓았기 때문에 로그인 기능을 활용하도록 하겠습니다.

1. 새 포스트 작성 함수

@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()