# 개인 학습용 기록글 입니다
커뮤니티 게시판app을 만들려고 한다
게시판app/영업점App의 기반만 만든 후, 다시 유저app으로 가서 세부조정에 들어갈 것이다 (FK, PK등을 재구상해야함)
게시판 최종목표는 다음과 같다
1. 질문 게시판 - 답변 기능 구현
2. 정보및 자유 게시판 - 단일 게시글에 댓글 구현, 좋아요/추천 기능 구현
3. 후기 게시판 - 영업점을 지정하여 리뷰글을 작성. 해당 영업점을 카테고리 기준으로 하여 볼 수 있게해야함
[communities > models.py]
1. board클래스 작성
from django.db import models
class Board(models.Model):
title = models.CharField(max_length=20, null=True)
content = models.TextField()
writer = models.CharField(max_length=20, null=True)
- 글 제목/내용/작성자 생성
[Communities > forms.py]
1. Form 클래스 작성
from django.forms import ModelForm
from .models import *
class BoardForm(ModelForm):
class Meta:
model = Board
fields = ['title', 'content', 'writer']
- Board모델의 title/content/writer를 필드로 할당
Meta클래스의 작성법을 알 것 같기도 하다.
[Communities > views.py]
1. render 시켜주기
from django.shortcuts import render, redirect
# Create your views here.
from .forms import *
from .models import *
def board(request):
if request.method == 'POST':
title = request.POST['title']
content = request.POST['content']
writer = request.POST['writer']
board = Board(
title=title,
content=content,
writer=writer,
)
board.save()
return redirect('board')
else:
boardForm = BoardForm
board = Board.objects.all()
context = {
'boardForm': boardForm,
'board': board,
}
return render(request, 'board.html', context)
- post하기(if문)
(1). front에서 title/content/writer를 입력받는다 (POST)
(2). 해당내용을 board 객체 안에 대입시킨다
(3). DB에 저장시킨다 - get하기(else문)
(1). front에서 내용을 보려 접근한다 (GET)
(2). 해당 DB에 저장된 값을 불러온다
(3). 작성한 html파일에 올린다
[Communities > urls.py]
from django.urls import path
from .views import *
urlpatterns = [
path("", board, name="board"),
]
주말엔 해당 게시판을 보기위한 간단한 html파일(board.html)을 생성하자.
도움된 글
저녁의 개발노트 블로그의 포스팅, django 게시판 구현하기