장고는 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)
'웹 > Django' 카테고리의 다른 글
제네릭 뷰 (0) | 2020.12.11 |
---|---|
클래스형 뷰 (0) | 2020.12.11 |
템플릿 활용법3 - 템플릿 상속 (0) | 2020.12.10 |
템플릿 활용법2 -템플릿 태그 (0) | 2020.12.09 |
템플릿 활용법 (0) | 2020.12.09 |