반응형
▶ 기존에 작성된 views.py는 내용을 작성해도 데이터가 넘어가지 않았음
from django.shortcuts import render
from django.http import HttpResponseRedirect
from second.models import Post
from .forms import PostForm
# Create your views here.
def list(request):
context = {
'items': Post.objects.all()
}
return render(request, 'second/list.html', context)
def create(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
print(form) ## 레코드를 생성하는 코드 필요
return HttpResponseRedirect('/second/list/')
form = PostForm()
return render(request, 'second/create.html', {'form': form})
def confirm(request):
form = PostForm(request.POST)
if form.is_valid():
return render(request, 'second/confirm.html', {'form': form})
return HttpResponseRedirect('/second/create/')
▶ create 메소드에 GET으로 요청이 들어왔을 때와 form을 통해 POST로 요청이 들어왔을 때를 구분해서 처리하도록 함
▶ 별도의 view 메소드로 구성해도 되지만 하나의 view 메소드(URL)에 GET/POST 요청에 따라 각각 다른 로직을 수행하도록 하는 것이 웹 사이트의 url 디자인이 더 간결해짐
▶ form = PostForm(request.POST) : request의 POST 데이터들을 바로 PostForm에 담을 수 있음
▶ if form.is_valid() : 데이터가 form 클래스에서 정의한 조건에 만족하는지 체크
▶ return HttpResponseRedirect('/second/list/') : 게시글 리스트 화면으로 이동함
from django.shortcuts import render
from django.http import HttpResponseRedirect
from second.models import Post
from .forms import PostForm
# Create your views here.
def list(request):
context = {
'items': Post.objects.all()
}
return render(request, 'second/list.html', context)
def create(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
new_item = form.save()
return HttpResponseRedirect('/second/list/')
form = PostForm()
return render(request, 'second/create.html', {'form': form})
def confirm(request):
form = PostForm(request.POST)
if form.is_valid():
return render(request, 'second/confirm.html', {'form': form})
return HttpResponseRedirect('/second/create/')
▶ /create/에 접근해서 폼 입력 후 제출을 누르면 /create/ 주소로 post 방식으로 데이터가 전달되고 list 페이지로 되돌아감
▶ new_item = form.save() : save 메소드로 입력받은 데이터를 레코드로 추가해 저장
▶ title과 content에 각각 '제목'과 '내용'을 두 번 입력 후 제출해 데이터 추가
반응형
'Django > inflearn' 카테고리의 다른 글
데이터 조회하기 (0) | 2022.11.02 |
---|---|
Django ORM 개요 (0) | 2022.11.01 |
Model Form 사용하기 (0) | 2022.10.30 |
폼으로 데이터 전송하기 (0) | 2022.10.21 |
기본 폼 생성하기 (0) | 2022.10.20 |