웹개발/Django 웹서비스 개발(인프런)
18. (app1) POST 처리(form에서 버튼 클릭시 DB에 반영시키기)
Storage Gonie
2019. 2. 9. 21:18
반응형
주제 : form에서 입력버튼 클릭시 DB에 반영시키기 및 redirect 시키기
1. views의 post메소드를 아래와 같이 수정한다.
def post(request):
if request.method == "POST": # html 코드 에서 지정가능
form = PostForm(request.POST)
if form.is_valid(): # form 객체의 속성을 사용자가 입력한 내용으로 교체한다.
lotto = form.save(commit = False) # PostFrom 클래스 내부의 Meta클래스에서 명명한 GuessNumbers 객체가 생성됨.(내부의 데이터가 아직 채워지지 않아 아직 DB에 반영을 안시킴)
lotto.generate() # generate함수 내에서 DB 반영을 시킴
return redirect('index') # urls에서 name속성에 맞는 쪽로 연결된다.
else:
form = PostForm()
return render(request, "lotto/form.html", {"form" : form})
2. redirect 모듈 또한 추가해준다.
from django.shortcuts import render, redirect
3. localhost:8000/lotto/new 에서 아무거나 입력후 입력버튼을 눌러보면 'index' name을 가지는 localhost:8000/lotto로 리다이렉트 되어지며
localhost:8000/admin에서 확인하면 DB에 들어간 것도 볼 수 있다.
반응형