728x90
점프 투 장고를 참고하여 학습,제작하였습니다.
1.영단어 등록만들기
1-1.버튼만들기
누르면 'voca_create' url 로 이동하는 버튼을 만든다.
1-2.URL 매핑하기
'voca_create'이름의 url 을 매핑하준다. 해당 url은 views.voca_create 함수를 호출한다.
1-3.폼 제작
forms.ModelForm을 상속받은 클래스이다.
모델 폼은 모델과 연결된 폼으로 폼을 저장하면 연결된 모델의 데이터를 저장할수 있는 폼이다.
이경우 Meta 클래스가 필요하며
모델과 모델의 속성을 적어야한다.
1-4.뷰함수
url이 호출할 voca_create 함수를 만든다.
render 함수에 전달한 {'form': form}은 템플릿에서 질문 등록시 사용할 폼 엘리먼트를 생성할 때 쓰인다.
1-5. 템플릿 작성
<form method="post"> 처럼 action을 지정하지않는다면 현재 페이지의 url이 디폴트 action으로 설정됨
{{ form.as_p }}는 view의 함수가 보낸 VocaForm의 객체이다.
1-6.결과
2.GET과 POST
2-1.voca_create 함수 수정
URL 요청이 Post 일때랑 Get 일때랑 다르게 처리한다.
Get일때: get일때는 영단어 등록을 위해 해당 페이지에 들어왔을때이므로 else문으로 간다.
Post일때: post일때는 영단어를 저장하기를 눌렀을때 action이 작성되지 않았으므로 다시 해당 페이지로 들어간것 이므로 if문 으로 들어가서 form 값을 Post받은 값을 넣어주고
폼이 유효한지 검사한다음 유효하다면
임시저장하여 voca 객체를 리턴받고
데이터를 실제로 저장한다.
2-2.결과
2-3.위젯 꾸며주기
728x90
'BackEnd > Django' 카테고리의 다른 글
[Django] 수동 폼 (1) | 2024.05.06 |
---|---|
[Django] 템플릿 상속(extend) (0) | 2024.05.05 |
[Django] 부트스트랩 (0) | 2024.05.05 |