from django.shortcuts import render, redirect from .models import Board from user.models import User from .forms import BoardForm # Create your views here.
defboard_write(request): if request.method == 'POST': form = BoardForm(request.POST) if form.is_valid(): user_id = request.session.get('user') # user_id를 가져옴 user = User.objects.get(pk=user_id) # 현재 로그인한 사용자 id를 user에 저장
board = Board() # 모델 클래스 변수 생성 board.title = form.cleaned_data['title'] # form의 제목을 가져옴 board.contents = form.cleaned_data['contents'] board.writer = user # 현재 로그인한 사용자의 id board.save()
return redirect('/board/list/') # 작성 후 글목록으로 이동 else: form = BoardForm() return render(request, 'board/board_write.html', {'form' : form})
이어서 글 상세보기 기능을 추가하기 위해 board/views.py로 이동하여 board_detail함수를 추가해줍니다.
1 2 3
defboard_detail(request, pk):# 몇번째 글인지 확인하기 위해 주소로부터 pk를 받음 board = Board.objects.get(pk=pk) # pk에 해당하는 글을 가져옴(입력받은 id값에(몇번째글인지) 맞는 글을 가져옴) return render(request, 'board/board_detail.html', {'board' : board}) #템플릿에 전달
다음으로 board/urls.py로 이동하여 path를 추가하겠습니다.
1 2 3 4 5 6 7 8
from django.urls import path, include from . import views
urlpatterns = [ path('detail/<int:pk>', views.board_detail), # int형 pk라는 변수명으로 받음 ex detail/1 (= 첫번째 글) path('list/', views.board_list), path('write/', views.board_write), ]
이 후 템플릿에 board_detail.html 파일을 생성해준 뒤 다음과 같이 작성합니다.