TIL no.53 - Django - Basic - 17 - Model Form으로 데이터 저장하기

박준규·2019년 10월 21일
0

Django

목록 보기
21/30

기존에 작성된 views.py의 create 메소드에
GET으로 요청이 들어왔을 때와
form을 통해 POST로 요청이 들어왔을 때를 구분해서 처리하도록 하겠습니다.

이렇게 처리해주면 url mapping을 간결하게 처리할 수 있습니다.


1. Model Form으로 데이터 저장하기

#second/views.py

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})

만약 전달받은 방식이 POST방식이면
validation check를 한뒤에
form data를 저장합니다.
그뒤에 list로 갑니다.

list는 Post 클래스로 만든 model들의 요소들을
화면에 차례대로 프린트 해주도록 해줬기 때문에
form data로 넘겨준 정보가 화면에 표시됩니다.

#second/create.html

<form action="{% url 'create' %}" method="post">
    {% csrf_token %}
    <table>
        {{ form.as_table }}
    </table>
    <button type="submit">제출</button>
</form>

create에서 유저로부터 form data를 입력받습니다. 그리고 post방식으로 create에게 넘깁니다.

다시 views.py를 보면서 로직을 하나하나 따져보면 됩니다.

profile
devzunky@gmail.com

0개의 댓글