웹/Django
폼 처리하기
밍래그로프
2020. 12. 10. 23:08
장고는 form의 데이터를 전송할 때 오로지 post방식만 사용한다.
모델 클래스 -- 데이터베이스 매칭처럼
폼 클래스 -- input엘리먼트에 매핑됨
데이터가 있는 폼을 bound form
데이터가 없는 폼을 unbound form 이라고 함
폼 클래스를 따로 정의해서 view에서 처리한다.
각 input type 별로 필드 타입이 다르다.
예시
text타입은 CharField(label="",max_length=)
textarea 타입은 CharField(label="",max_length=100, widget=forms.Textarea)
장고의 모든 폼 클래스는 is_valid()를 통해 유효성 검사를 한다.
유효하면 true를 리턴, cleaned_data 속성에 넣는다.
폼 클래스의 렌더링
{{form}} 구문은 label 과 input 엘리먼트 쌍으로 렌더링 된다.
추가적인 옵션
{{form.as_table}} #테이블 렌더링
{{form.as_p}} #p태그 감싸서 렌더링
{{form.as_ul}} #ul로 렌더링
클래스를 만들어서 구현 할때
django.forms 를 import하고
forms.매핑된 엘리먼트
이때
클래스 변수 이름은 렌더링 시 input 태그의 name속성의 값이 된다.
id는 id_클래스변수명 이다.
예시
message = forms.CharField(max_lenth=100)
checkBox= forms.BooleanField(required=False)